import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Operation, OperationParams } from "./ydb_operation_pb.js";
import type { StatusIds_StatusCode } from "./ydb_status_codes_pb.js";
import type { IssueMessage } from "./ydb_issue_message_pb.js";
import type { Entry } from "./ydb_scheme_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/ydb_coordination.proto.
 */
export declare const file_protos_ydb_coordination: GenFile;
/**
 * *
 * Stub for unsupported messages
 *
 * Intentionally empty
 *
 * @generated from message Ydb.Coordination.Unsupported
 */
export type Unsupported = Message<"Ydb.Coordination.Unsupported"> & {};
/**
 * Describes the message Ydb.Coordination.Unsupported.
 * Use `create(UnsupportedSchema)` to create a new message.
 */
export declare const UnsupportedSchema: GenMessage<Unsupported>;
/**
 * *
 * Configuration settings for a coordination node
 *
 * @generated from message Ydb.Coordination.Config
 */
export type Config = Message<"Ydb.Coordination.Config"> & {
    /**
     * Initialized on creation, cannot be set
     *
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * Period in milliseconds for self-checks (default 1 second)
     *
     * @generated from field: uint32 self_check_period_millis = 2;
     */
    selfCheckPeriodMillis: number;
    /**
     * Grace period for sessions on leader change (default 10 seconds)
     *
     * @generated from field: uint32 session_grace_period_millis = 3;
     */
    sessionGracePeriodMillis: number;
    /**
     * Concistency mode for read operations
     *
     * @generated from field: Ydb.Coordination.ConsistencyMode read_consistency_mode = 4;
     */
    readConsistencyMode: ConsistencyMode;
    /**
     * Consistency mode for attach operations
     *
     * @generated from field: Ydb.Coordination.ConsistencyMode attach_consistency_mode = 5;
     */
    attachConsistencyMode: ConsistencyMode;
    /**
     * Rate limiter counters mode
     *
     * @generated from field: Ydb.Coordination.RateLimiterCountersMode rate_limiter_counters_mode = 6;
     */
    rateLimiterCountersMode: RateLimiterCountersMode;
};
/**
 * Describes the message Ydb.Coordination.Config.
 * Use `create(ConfigSchema)` to create a new message.
 */
export declare const ConfigSchema: GenMessage<Config>;
/**
 * *
 * Describes an active client session
 *
 * @generated from message Ydb.Coordination.SessionDescription
 */
export type SessionDescription = Message<"Ydb.Coordination.SessionDescription"> & {
    /**
     * Session id generated by the server
     *
     * @generated from field: uint64 session_id = 1;
     */
    sessionId: bigint;
    /**
     * Expiration timeout of the session
     *
     * @generated from field: uint64 timeout_millis = 2;
     */
    timeoutMillis: bigint;
    /**
     * User-specified description of this session
     *
     * @generated from field: string description = 3;
     */
    description: string;
    /**
     * True if this session is currently attached to a client
     *
     * @generated from field: bool attached = 4;
     */
    attached: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionDescription.
 * Use `create(SessionDescriptionSchema)` to create a new message.
 */
export declare const SessionDescriptionSchema: GenMessage<SessionDescription>;
/**
 * *
 * Describes an owner or a waiter of this semaphore
 *
 * @generated from message Ydb.Coordination.SemaphoreSession
 */
export type SemaphoreSession = Message<"Ydb.Coordination.SemaphoreSession"> & {
    /**
     * A monotonically increasing id which determines locking order
     *
     * @generated from field: uint64 order_id = 5;
     */
    orderId: bigint;
    /**
     * An id of the session which tried to acquire the semaphore
     *
     * @generated from field: uint64 session_id = 1;
     */
    sessionId: bigint;
    /**
     * A timeout in milliseconds for operation in waiters queue
     *
     * @generated from field: uint64 timeout_millis = 2;
     */
    timeoutMillis: bigint;
    /**
     * Number of tokens for an acquire operation
     *
     * @generated from field: uint64 count = 3;
     */
    count: bigint;
    /**
     * User-defined data attached to the acquire operation
     *
     * @generated from field: bytes data = 4;
     */
    data: Uint8Array;
};
/**
 * Describes the message Ydb.Coordination.SemaphoreSession.
 * Use `create(SemaphoreSessionSchema)` to create a new message.
 */
export declare const SemaphoreSessionSchema: GenMessage<SemaphoreSession>;
/**
 * *
 * Describes the state of a semaphore
 *
 * @generated from message Ydb.Coordination.SemaphoreDescription
 */
export type SemaphoreDescription = Message<"Ydb.Coordination.SemaphoreDescription"> & {
    /**
     * Name of the semaphore
     *
     * @generated from field: string name = 1;
     */
    name: string;
    /**
     * User-defined data attached to the semaphore
     *
     * @generated from field: bytes data = 2;
     */
    data: Uint8Array;
    /**
     * Number of tokens currently acquired by owners
     *
     * @generated from field: uint64 count = 7;
     */
    count: bigint;
    /**
     * Maximum number of tokens that may acquired
     *
     * @generated from field: uint64 limit = 3;
     */
    limit: bigint;
    /**
     * Ephemeral semaphores are deleted when released by all owners and waiters
     *
     * @generated from field: bool ephemeral = 4;
     */
    ephemeral: boolean;
    /**
     * A list of current owners of the semaphore
     *
     * @generated from field: repeated Ydb.Coordination.SemaphoreSession owners = 5;
     */
    owners: SemaphoreSession[];
    /**
     * A list of current waiters on the semaphore
     *
     * @generated from field: repeated Ydb.Coordination.SemaphoreSession waiters = 6;
     */
    waiters: SemaphoreSession[];
};
/**
 * Describes the message Ydb.Coordination.SemaphoreDescription.
 * Use `create(SemaphoreDescriptionSchema)` to create a new message.
 */
export declare const SemaphoreDescriptionSchema: GenMessage<SemaphoreDescription>;
/**
 * *
 * Session request message sent from client to server
 *
 * @generated from message Ydb.Coordination.SessionRequest
 */
export type SessionRequest = Message<"Ydb.Coordination.SessionRequest"> & {
    /**
     * @generated from oneof Ydb.Coordination.SessionRequest.request
     */
    request: {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.PingPong ping = 1;
         */
        value: SessionRequest_PingPong;
        case: "ping";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.PingPong pong = 2;
         */
        value: SessionRequest_PingPong;
        case: "pong";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.SessionStart session_start = 3;
         */
        value: SessionRequest_SessionStart;
        case: "sessionStart";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.SessionStop session_stop = 4;
         */
        value: SessionRequest_SessionStop;
        case: "sessionStop";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_5 = 5;
         */
        value: Unsupported;
        case: "unsupported5";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_6 = 6;
         */
        value: Unsupported;
        case: "unsupported6";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.AcquireSemaphore acquire_semaphore = 7;
         */
        value: SessionRequest_AcquireSemaphore;
        case: "acquireSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.ReleaseSemaphore release_semaphore = 8;
         */
        value: SessionRequest_ReleaseSemaphore;
        case: "releaseSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.DescribeSemaphore describe_semaphore = 9;
         */
        value: SessionRequest_DescribeSemaphore;
        case: "describeSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.CreateSemaphore create_semaphore = 10;
         */
        value: SessionRequest_CreateSemaphore;
        case: "createSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.UpdateSemaphore update_semaphore = 11;
         */
        value: SessionRequest_UpdateSemaphore;
        case: "updateSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionRequest.DeleteSemaphore delete_semaphore = 12;
         */
        value: SessionRequest_DeleteSemaphore;
        case: "deleteSemaphore";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_13 = 13;
         */
        value: Unsupported;
        case: "unsupported13";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_14 = 14;
         */
        value: Unsupported;
        case: "unsupported14";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_15 = 15;
         */
        value: Unsupported;
        case: "unsupported15";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.
 * Use `create(SessionRequestSchema)` to create a new message.
 */
export declare const SessionRequestSchema: GenMessage<SessionRequest>;
/**
 * *
 * Used for checking liveness of the connection
 *
 * @generated from message Ydb.Coordination.SessionRequest.PingPong
 */
export type SessionRequest_PingPong = Message<"Ydb.Coordination.SessionRequest.PingPong"> & {
    /**
     * Opaque number specified in the ping message is echoed in the pong message
     *
     * @generated from field: uint64 opaque = 1;
     */
    opaque: bigint;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.PingPong.
 * Use `create(SessionRequest_PingPongSchema)` to create a new message.
 */
export declare const SessionRequest_PingPongSchema: GenMessage<SessionRequest_PingPong>;
/**
 * *
 * First message used to start/restore a session
 *
 * @generated from message Ydb.Coordination.SessionRequest.SessionStart
 */
export type SessionRequest_SessionStart = Message<"Ydb.Coordination.SessionRequest.SessionStart"> & {
    /**
     * Path to a coordination node
     *
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * Non-zero when restoring a session, 0 when creating a new session
     *
     * @generated from field: uint64 session_id = 2;
     */
    sessionId: bigint;
    /**
     * Timeout in milliseconds during which client may restore a detached session
     *
     * @generated from field: uint64 timeout_millis = 3;
     */
    timeoutMillis: bigint;
    /**
     * User-defined description that may be used to describe the client
     *
     * @generated from field: string description = 4;
     */
    description: string;
    /**
     * Monotonically increasing sequence number generated by the client
     * When concurrent SessionStart requests are detected the one with
     * the biggest sequence number will succeed
     *
     * @generated from field: uint64 seq_no = 5;
     */
    seqNo: bigint;
    /**
     * Random bytes used to protect session from restore by other clients (max. 16 bytes)
     *
     * @generated from field: bytes protection_key = 6;
     */
    protectionKey: Uint8Array;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.SessionStart.
 * Use `create(SessionRequest_SessionStartSchema)` to create a new message.
 */
export declare const SessionRequest_SessionStartSchema: GenMessage<SessionRequest_SessionStart>;
/**
 * *
 * Last message used to cleanly stop session before its timeout expires
 *
 * nothing
 *
 * @generated from message Ydb.Coordination.SessionRequest.SessionStop
 */
export type SessionRequest_SessionStop = Message<"Ydb.Coordination.SessionRequest.SessionStop"> & {};
/**
 * Describes the message Ydb.Coordination.SessionRequest.SessionStop.
 * Use `create(SessionRequest_SessionStopSchema)` to create a new message.
 */
export declare const SessionRequest_SessionStopSchema: GenMessage<SessionRequest_SessionStop>;
/**
 * *
 * Used to acquire a semaphore
 *
 * WARNING: a single session cannot acquire the same semaphore multiple times
 *
 * Later requests override previous operations with the same semaphore,
 * e.g. to reduce acquired count, change timeout or attached data.
 *
 * @generated from message Ydb.Coordination.SessionRequest.AcquireSemaphore
 */
export type SessionRequest_AcquireSemaphore = Message<"Ydb.Coordination.SessionRequest.AcquireSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to acquire
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * Timeout in milliseconds after which operation will fail
     * if it's still waiting in the waiters queue
     *
     * @generated from field: uint64 timeout_millis = 3;
     */
    timeoutMillis: bigint;
    /**
     * Number of tokens to acquire on the semaphore
     *
     * @generated from field: uint64 count = 4;
     */
    count: bigint;
    /**
     * User-defined binary data that may be attached to the operation
     *
     * @generated from field: bytes data = 5;
     */
    data: Uint8Array;
    /**
     * Ephemeral semaphores are created with the first acquire operation
     * and automatically deleted with the last release operation
     *
     * @generated from field: bool ephemeral = 6;
     */
    ephemeral: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.AcquireSemaphore.
 * Use `create(SessionRequest_AcquireSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_AcquireSemaphoreSchema: GenMessage<SessionRequest_AcquireSemaphore>;
/**
 * *
 * Used to release a semaphore
 *
 * WARNING: a single session cannot release the same semaphore multiple times
 *
 * The release operation will either remove current session from waiters
 * queue or release an already owned semaphore.
 *
 * @generated from message Ydb.Coordination.SessionRequest.ReleaseSemaphore
 */
export type SessionRequest_ReleaseSemaphore = Message<"Ydb.Coordination.SessionRequest.ReleaseSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to release
     *
     * @generated from field: string name = 2;
     */
    name: string;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.ReleaseSemaphore.
 * Use `create(SessionRequest_ReleaseSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_ReleaseSemaphoreSchema: GenMessage<SessionRequest_ReleaseSemaphore>;
/**
 * *
 * Used to describe semaphores and watch them for changes
 *
 * WARNING: a describe operation will cancel previous watches on the same semaphore
 *
 * @generated from message Ydb.Coordination.SessionRequest.DescribeSemaphore
 */
export type SessionRequest_DescribeSemaphore = Message<"Ydb.Coordination.SessionRequest.DescribeSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to describe
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * Response will include owners list if true
     *
     * @generated from field: bool include_owners = 3;
     */
    includeOwners: boolean;
    /**
     * Response will include waiters list if true
     *
     * @generated from field: bool include_waiters = 4;
     */
    includeWaiters: boolean;
    /**
     * Watch for changes in semaphore data
     *
     * @generated from field: bool watch_data = 5;
     */
    watchData: boolean;
    /**
     * Watch for changes in semaphore owners (including owners data)
     *
     * @generated from field: bool watch_owners = 6;
     */
    watchOwners: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.DescribeSemaphore.
 * Use `create(SessionRequest_DescribeSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_DescribeSemaphoreSchema: GenMessage<SessionRequest_DescribeSemaphore>;
/**
 * *
 * Used to create a new semaphore
 *
 * @generated from message Ydb.Coordination.SessionRequest.CreateSemaphore
 */
export type SessionRequest_CreateSemaphore = Message<"Ydb.Coordination.SessionRequest.CreateSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to create
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * Number of tokens that may be acquired by sessions
     *
     * @generated from field: uint64 limit = 3;
     */
    limit: bigint;
    /**
     * User-defined data that is attached to the semaphore
     *
     * @generated from field: bytes data = 4;
     */
    data: Uint8Array;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.CreateSemaphore.
 * Use `create(SessionRequest_CreateSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_CreateSemaphoreSchema: GenMessage<SessionRequest_CreateSemaphore>;
/**
 * *
 * Used to change semaphore data
 *
 * @generated from message Ydb.Coordination.SessionRequest.UpdateSemaphore
 */
export type SessionRequest_UpdateSemaphore = Message<"Ydb.Coordination.SessionRequest.UpdateSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to update
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * User-defined data that is attached to the semaphore
     *
     * @generated from field: bytes data = 3;
     */
    data: Uint8Array;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.UpdateSemaphore.
 * Use `create(SessionRequest_UpdateSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_UpdateSemaphoreSchema: GenMessage<SessionRequest_UpdateSemaphore>;
/**
 * *
 * Used to delete an existing semaphore
 *
 * @generated from message Ydb.Coordination.SessionRequest.DeleteSemaphore
 */
export type SessionRequest_DeleteSemaphore = Message<"Ydb.Coordination.SessionRequest.DeleteSemaphore"> & {
    /**
     * Client-defined request id, echoed in the response
     *
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * Name of the semaphore to delete
     *
     * @generated from field: string name = 2;
     */
    name: string;
    /**
     * Will delete semaphore even if currently acquired by sessions
     *
     * @generated from field: bool force = 3;
     */
    force: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionRequest.DeleteSemaphore.
 * Use `create(SessionRequest_DeleteSemaphoreSchema)` to create a new message.
 */
export declare const SessionRequest_DeleteSemaphoreSchema: GenMessage<SessionRequest_DeleteSemaphore>;
/**
 * *
 * Session response message sent from server to client
 *
 * @generated from message Ydb.Coordination.SessionResponse
 */
export type SessionResponse = Message<"Ydb.Coordination.SessionResponse"> & {
    /**
     * @generated from oneof Ydb.Coordination.SessionResponse.response
     */
    response: {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.PingPong ping = 1;
         */
        value: SessionResponse_PingPong;
        case: "ping";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.PingPong pong = 2;
         */
        value: SessionResponse_PingPong;
        case: "pong";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.Failure failure = 3;
         */
        value: SessionResponse_Failure;
        case: "failure";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.SessionStarted session_started = 4;
         */
        value: SessionResponse_SessionStarted;
        case: "sessionStarted";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.SessionStopped session_stopped = 5;
         */
        value: SessionResponse_SessionStopped;
        case: "sessionStopped";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_6 = 6;
         */
        value: Unsupported;
        case: "unsupported6";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_7 = 7;
         */
        value: Unsupported;
        case: "unsupported7";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.AcquireSemaphorePending acquire_semaphore_pending = 8;
         */
        value: SessionResponse_AcquireSemaphorePending;
        case: "acquireSemaphorePending";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.AcquireSemaphoreResult acquire_semaphore_result = 9;
         */
        value: SessionResponse_AcquireSemaphoreResult;
        case: "acquireSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult release_semaphore_result = 10;
         */
        value: SessionResponse_ReleaseSemaphoreResult;
        case: "releaseSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.DescribeSemaphoreResult describe_semaphore_result = 11;
         */
        value: SessionResponse_DescribeSemaphoreResult;
        case: "describeSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged describe_semaphore_changed = 12;
         */
        value: SessionResponse_DescribeSemaphoreChanged;
        case: "describeSemaphoreChanged";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.CreateSemaphoreResult create_semaphore_result = 13;
         */
        value: SessionResponse_CreateSemaphoreResult;
        case: "createSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.UpdateSemaphoreResult update_semaphore_result = 14;
         */
        value: SessionResponse_UpdateSemaphoreResult;
        case: "updateSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.SessionResponse.DeleteSemaphoreResult delete_semaphore_result = 15;
         */
        value: SessionResponse_DeleteSemaphoreResult;
        case: "deleteSemaphoreResult";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_16 = 16;
         */
        value: Unsupported;
        case: "unsupported16";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_17 = 17;
         */
        value: Unsupported;
        case: "unsupported17";
    } | {
        /**
         * @generated from field: Ydb.Coordination.Unsupported unsupported_18 = 18;
         */
        value: Unsupported;
        case: "unsupported18";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.
 * Use `create(SessionResponseSchema)` to create a new message.
 */
export declare const SessionResponseSchema: GenMessage<SessionResponse>;
/**
 * *
 * Used for checking liveness of the connection
 *
 * @generated from message Ydb.Coordination.SessionResponse.PingPong
 */
export type SessionResponse_PingPong = Message<"Ydb.Coordination.SessionResponse.PingPong"> & {
    /**
     * Opaque number specified in the ping message is echoed in the pong message
     *
     * @generated from field: uint64 opaque = 1;
     */
    opaque: bigint;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.PingPong.
 * Use `create(SessionResponse_PingPongSchema)` to create a new message.
 */
export declare const SessionResponse_PingPongSchema: GenMessage<SessionResponse_PingPong>;
/**
 * *
 * Used to report connection and session level failures
 *
 * @generated from message Ydb.Coordination.SessionResponse.Failure
 */
export type SessionResponse_Failure = Message<"Ydb.Coordination.SessionResponse.Failure"> & {
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 1;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 2;
     */
    issues: IssueMessage[];
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.Failure.
 * Use `create(SessionResponse_FailureSchema)` to create a new message.
 */
export declare const SessionResponse_FailureSchema: GenMessage<SessionResponse_Failure>;
/**
 * *
 * Used to report a successful session create/restore operation
 *
 * @generated from message Ydb.Coordination.SessionResponse.SessionStarted
 */
export type SessionResponse_SessionStarted = Message<"Ydb.Coordination.SessionResponse.SessionStarted"> & {
    /**
     * A server generation id that may be used for restoring the session
     *
     * @generated from field: uint64 session_id = 1;
     */
    sessionId: bigint;
    /**
     * Timeout in milliseconds that will be used by the server
     *
     * @generated from field: uint64 timeout_millis = 2;
     */
    timeoutMillis: bigint;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.SessionStarted.
 * Use `create(SessionResponse_SessionStartedSchema)` to create a new message.
 */
export declare const SessionResponse_SessionStartedSchema: GenMessage<SessionResponse_SessionStarted>;
/**
 * *
 * Used to report a successful graceful termination of the session
 *
 * @generated from message Ydb.Coordination.SessionResponse.SessionStopped
 */
export type SessionResponse_SessionStopped = Message<"Ydb.Coordination.SessionResponse.SessionStopped"> & {
    /**
     * @generated from field: uint64 session_id = 1;
     */
    sessionId: bigint;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.SessionStopped.
 * Use `create(SessionResponse_SessionStoppedSchema)` to create a new message.
 */
export declare const SessionResponse_SessionStoppedSchema: GenMessage<SessionResponse_SessionStopped>;
/**
 * *
 * Used by the server to report when an acquire operation is added to the waiters queue
 *
 * @generated from message Ydb.Coordination.SessionResponse.AcquireSemaphorePending
 */
export type SessionResponse_AcquireSemaphorePending = Message<"Ydb.Coordination.SessionResponse.AcquireSemaphorePending"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.AcquireSemaphorePending.
 * Use `create(SessionResponse_AcquireSemaphorePendingSchema)` to create a new message.
 */
export declare const SessionResponse_AcquireSemaphorePendingSchema: GenMessage<SessionResponse_AcquireSemaphorePending>;
/**
 * *
 * Used by the server to report the result of an acquire operation
 *
 * @generated from message Ydb.Coordination.SessionResponse.AcquireSemaphoreResult
 */
export type SessionResponse_AcquireSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.AcquireSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
    /**
     * True if semaphore was acquired, false if acquire timed out
     *
     * @generated from field: bool acquired = 4;
     */
    acquired: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.AcquireSemaphoreResult.
 * Use `create(SessionResponse_AcquireSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_AcquireSemaphoreResultSchema: GenMessage<SessionResponse_AcquireSemaphoreResult>;
/**
 * *
 * Used by the server to report the result of a release operation
 *
 * @generated from message Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult
 */
export type SessionResponse_ReleaseSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
    /**
     * True if semaphore was released, false if there was no active acquire operation
     *
     * @generated from field: bool released = 4;
     */
    released: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.ReleaseSemaphoreResult.
 * Use `create(SessionResponse_ReleaseSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_ReleaseSemaphoreResultSchema: GenMessage<SessionResponse_ReleaseSemaphoreResult>;
/**
 * *
 * The result of the describe operation
 *
 * @generated from message Ydb.Coordination.SessionResponse.DescribeSemaphoreResult
 */
export type SessionResponse_DescribeSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.DescribeSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
    /**
     * @generated from field: Ydb.Coordination.SemaphoreDescription semaphore_description = 4;
     */
    semaphoreDescription?: SemaphoreDescription;
    /**
     * True if a watch has been added for the semaphore
     *
     * @generated from field: bool watch_added = 5;
     */
    watchAdded: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.DescribeSemaphoreResult.
 * Use `create(SessionResponse_DescribeSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_DescribeSemaphoreResultSchema: GenMessage<SessionResponse_DescribeSemaphoreResult>;
/**
 * *
 * Used to report a change in the watched semaphore
 *
 * @generated from message Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged
 */
export type SessionResponse_DescribeSemaphoreChanged = Message<"Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: bool data_changed = 2;
     */
    dataChanged: boolean;
    /**
     * @generated from field: bool owners_changed = 3;
     */
    ownersChanged: boolean;
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.DescribeSemaphoreChanged.
 * Use `create(SessionResponse_DescribeSemaphoreChangedSchema)` to create a new message.
 */
export declare const SessionResponse_DescribeSemaphoreChangedSchema: GenMessage<SessionResponse_DescribeSemaphoreChanged>;
/**
 * *
 * The result of semaphore creation
 *
 * @generated from message Ydb.Coordination.SessionResponse.CreateSemaphoreResult
 */
export type SessionResponse_CreateSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.CreateSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.CreateSemaphoreResult.
 * Use `create(SessionResponse_CreateSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_CreateSemaphoreResultSchema: GenMessage<SessionResponse_CreateSemaphoreResult>;
/**
 * *
 * The result of semaphore update
 *
 * @generated from message Ydb.Coordination.SessionResponse.UpdateSemaphoreResult
 */
export type SessionResponse_UpdateSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.UpdateSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.UpdateSemaphoreResult.
 * Use `create(SessionResponse_UpdateSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_UpdateSemaphoreResultSchema: GenMessage<SessionResponse_UpdateSemaphoreResult>;
/**
 * *
 * The result of semaphore deletion
 *
 * @generated from message Ydb.Coordination.SessionResponse.DeleteSemaphoreResult
 */
export type SessionResponse_DeleteSemaphoreResult = Message<"Ydb.Coordination.SessionResponse.DeleteSemaphoreResult"> & {
    /**
     * @generated from field: uint64 req_id = 1;
     */
    reqId: bigint;
    /**
     * @generated from field: Ydb.StatusIds.StatusCode status = 2;
     */
    status: StatusIds_StatusCode;
    /**
     * @generated from field: repeated Ydb.Issue.IssueMessage issues = 3;
     */
    issues: IssueMessage[];
};
/**
 * Describes the message Ydb.Coordination.SessionResponse.DeleteSemaphoreResult.
 * Use `create(SessionResponse_DeleteSemaphoreResultSchema)` to create a new message.
 */
export declare const SessionResponse_DeleteSemaphoreResultSchema: GenMessage<SessionResponse_DeleteSemaphoreResult>;
/**
 * @generated from message Ydb.Coordination.CreateNodeRequest
 */
export type CreateNodeRequest = Message<"Ydb.Coordination.CreateNodeRequest"> & {
    /**
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * @generated from field: Ydb.Coordination.Config config = 2;
     */
    config?: Config;
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 3;
     */
    operationParams?: OperationParams;
};
/**
 * Describes the message Ydb.Coordination.CreateNodeRequest.
 * Use `create(CreateNodeRequestSchema)` to create a new message.
 */
export declare const CreateNodeRequestSchema: GenMessage<CreateNodeRequest>;
/**
 * @generated from message Ydb.Coordination.CreateNodeResponse
 */
export type CreateNodeResponse = Message<"Ydb.Coordination.CreateNodeResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Coordination.CreateNodeResponse.
 * Use `create(CreateNodeResponseSchema)` to create a new message.
 */
export declare const CreateNodeResponseSchema: GenMessage<CreateNodeResponse>;
/**
 * @generated from message Ydb.Coordination.AlterNodeRequest
 */
export type AlterNodeRequest = Message<"Ydb.Coordination.AlterNodeRequest"> & {
    /**
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * @generated from field: Ydb.Coordination.Config config = 2;
     */
    config?: Config;
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 3;
     */
    operationParams?: OperationParams;
};
/**
 * Describes the message Ydb.Coordination.AlterNodeRequest.
 * Use `create(AlterNodeRequestSchema)` to create a new message.
 */
export declare const AlterNodeRequestSchema: GenMessage<AlterNodeRequest>;
/**
 * @generated from message Ydb.Coordination.AlterNodeResponse
 */
export type AlterNodeResponse = Message<"Ydb.Coordination.AlterNodeResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Coordination.AlterNodeResponse.
 * Use `create(AlterNodeResponseSchema)` to create a new message.
 */
export declare const AlterNodeResponseSchema: GenMessage<AlterNodeResponse>;
/**
 * @generated from message Ydb.Coordination.DropNodeRequest
 */
export type DropNodeRequest = Message<"Ydb.Coordination.DropNodeRequest"> & {
    /**
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 2;
     */
    operationParams?: OperationParams;
};
/**
 * Describes the message Ydb.Coordination.DropNodeRequest.
 * Use `create(DropNodeRequestSchema)` to create a new message.
 */
export declare const DropNodeRequestSchema: GenMessage<DropNodeRequest>;
/**
 * @generated from message Ydb.Coordination.DropNodeResponse
 */
export type DropNodeResponse = Message<"Ydb.Coordination.DropNodeResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Coordination.DropNodeResponse.
 * Use `create(DropNodeResponseSchema)` to create a new message.
 */
export declare const DropNodeResponseSchema: GenMessage<DropNodeResponse>;
/**
 * @generated from message Ydb.Coordination.DescribeNodeRequest
 */
export type DescribeNodeRequest = Message<"Ydb.Coordination.DescribeNodeRequest"> & {
    /**
     * @generated from field: string path = 1;
     */
    path: string;
    /**
     * @generated from field: Ydb.Operations.OperationParams operation_params = 2;
     */
    operationParams?: OperationParams;
};
/**
 * Describes the message Ydb.Coordination.DescribeNodeRequest.
 * Use `create(DescribeNodeRequestSchema)` to create a new message.
 */
export declare const DescribeNodeRequestSchema: GenMessage<DescribeNodeRequest>;
/**
 * @generated from message Ydb.Coordination.DescribeNodeResponse
 */
export type DescribeNodeResponse = Message<"Ydb.Coordination.DescribeNodeResponse"> & {
    /**
     * @generated from field: Ydb.Operations.Operation operation = 1;
     */
    operation?: Operation;
};
/**
 * Describes the message Ydb.Coordination.DescribeNodeResponse.
 * Use `create(DescribeNodeResponseSchema)` to create a new message.
 */
export declare const DescribeNodeResponseSchema: GenMessage<DescribeNodeResponse>;
/**
 * @generated from message Ydb.Coordination.DescribeNodeResult
 */
export type DescribeNodeResult = Message<"Ydb.Coordination.DescribeNodeResult"> & {
    /**
     * @generated from field: Ydb.Scheme.Entry self = 1;
     */
    self?: Entry;
    /**
     * @generated from field: Ydb.Coordination.Config config = 2;
     */
    config?: Config;
};
/**
 * Describes the message Ydb.Coordination.DescribeNodeResult.
 * Use `create(DescribeNodeResultSchema)` to create a new message.
 */
export declare const DescribeNodeResultSchema: GenMessage<DescribeNodeResult>;
/**
 * *
 * Consistency mode
 *
 * @generated from enum Ydb.Coordination.ConsistencyMode
 */
export declare enum ConsistencyMode {
    /**
     * The default or current value
     *
     * @generated from enum value: CONSISTENCY_MODE_UNSET = 0;
     */
    UNSET = 0,
    /**
     * Strict mode makes sure operations may only complete on current leader
     *
     * @generated from enum value: CONSISTENCY_MODE_STRICT = 1;
     */
    STRICT = 1,
    /**
     * Relaxed mode allows operations to complete on stale masters
     *
     * @generated from enum value: CONSISTENCY_MODE_RELAXED = 2;
     */
    RELAXED = 2
}
/**
 * Describes the enum Ydb.Coordination.ConsistencyMode.
 */
export declare const ConsistencyModeSchema: GenEnum<ConsistencyMode>;
/**
 * *
 * Counters mode
 *
 * @generated from enum Ydb.Coordination.RateLimiterCountersMode
 */
export declare enum RateLimiterCountersMode {
    /**
     * The default or current value
     *
     * @generated from enum value: RATE_LIMITER_COUNTERS_MODE_UNSET = 0;
     */
    UNSET = 0,
    /**
     * Aggregated counters for resource tree
     *
     * @generated from enum value: RATE_LIMITER_COUNTERS_MODE_AGGREGATED = 1;
     */
    AGGREGATED = 1,
    /**
     * Counters on every resource
     *
     * @generated from enum value: RATE_LIMITER_COUNTERS_MODE_DETAILED = 2;
     */
    DETAILED = 2
}
/**
 * Describes the enum Ydb.Coordination.RateLimiterCountersMode.
 */
export declare const RateLimiterCountersModeSchema: GenEnum<RateLimiterCountersMode>;
//# sourceMappingURL=ydb_coordination_pb.d.ts.map