# Copyright (c) 2017-2023 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# fmt: off
# isort: skip_file

import builtins as _builtins, sys, typing as _typing

from google.protobuf.internal.containers import RepeatedScalarFieldContainer
from google.protobuf.message import Message as _Message

from .event_pb2 import ArchivedEvent, CreatedEvent
from .value_pb2 import Identifier, Value

__all__ = [
    "GetEventsByContractIdRequest",
    "GetEventsByContractIdResponse",
    "GetEventsByContractKeyRequest",
    "GetEventsByContractKeyResponse",
]


class GetEventsByContractIdRequest(_Message):
    contract_id: _builtins.str
    @property
    def requesting_parties(self) -> RepeatedScalarFieldContainer[_builtins.str]: ...
    def __init__(self, *, contract_id: _typing.Optional[_builtins.str] = ..., requesting_parties: _typing.Optional[_typing.Iterable[_builtins.str]] = ...): ...
    def HasField(self, field_name: _typing.Literal["contract_id", "requesting_parties"]) -> _builtins.bool: ...
    def ClearField(self, field_name: _typing.Literal["contract_id", "requesting_parties"]) -> None: ...
    def WhichOneof(self, oneof_group: _typing.NoReturn) -> _typing.NoReturn: ...

class GetEventsByContractIdResponse(_Message):
    @property
    def create_event(self) -> CreatedEvent: ...
    @property
    def archive_event(self) -> ArchivedEvent: ...
    def __init__(self, *, create_event: _typing.Optional[CreatedEvent] = ..., archive_event: _typing.Optional[ArchivedEvent] = ...): ...
    def HasField(self, field_name: _typing.Literal["create_event", "archive_event"]) -> _builtins.bool: ...
    def ClearField(self, field_name: _typing.Literal["create_event", "archive_event"]) -> None: ...
    def WhichOneof(self, oneof_group: _typing.NoReturn) -> _typing.NoReturn: ...

class GetEventsByContractKeyRequest(_Message):
    @property
    def contract_key(self) -> Value: ...
    @property
    def template_id(self) -> Identifier: ...
    @property
    def requesting_parties(self) -> RepeatedScalarFieldContainer[_builtins.str]: ...
    continuation_token: _builtins.str
    def __init__(self, *, contract_key: _typing.Optional[Value] = ..., template_id: _typing.Optional[Identifier] = ..., requesting_parties: _typing.Optional[_typing.Iterable[_builtins.str]] = ..., continuation_token: _typing.Optional[_builtins.str] = ...): ...
    def HasField(self, field_name: _typing.Literal["contract_key", "template_id", "requesting_parties", "continuation_token"]) -> _builtins.bool: ...
    def ClearField(self, field_name: _typing.Literal["contract_key", "template_id", "requesting_parties", "continuation_token"]) -> None: ...
    def WhichOneof(self, oneof_group: _typing.NoReturn) -> _typing.NoReturn: ...

class GetEventsByContractKeyResponse(_Message):
    @property
    def create_event(self) -> CreatedEvent: ...
    @property
    def archive_event(self) -> ArchivedEvent: ...
    continuation_token: _builtins.str
    def __init__(self, *, create_event: _typing.Optional[CreatedEvent] = ..., archive_event: _typing.Optional[ArchivedEvent] = ..., continuation_token: _typing.Optional[_builtins.str] = ...): ...
    def HasField(self, field_name: _typing.Literal["create_event", "archive_event", "continuation_token"]) -> _builtins.bool: ...
    def ClearField(self, field_name: _typing.Literal["create_event", "archive_event", "continuation_token"]) -> None: ...
    def WhichOneof(self, oneof_group: _typing.NoReturn) -> _typing.NoReturn: ...
