import type { MessageInitShape } from "@bufbuild/protobuf";
import { AlterNodeRequestSchema, AlterNodeResponseSchema, CreateNodeRequestSchema, CreateNodeResponseSchema, DescribeNodeRequestSchema, DescribeNodeResponseSchema, DropNodeRequestSchema, DropNodeResponseSchema, SessionRequestSchema, SessionResponseSchema } from "./protos/ydb_coordination_pb.js";
/**
 * @generated from service Ydb.Coordination.V1.CoordinationService
 */
export declare const CoordinationServiceDefinition: {
    /**
     * *
     * Bidirectional stream used to establish a session with a coordination node
     *
     * Relevant APIs for managing semaphores, distributed locking, creating or
     * restoring a previously established session are described using nested
     * messages in SessionRequest and SessionResponse. Session is established
     * with a specific coordination node (previously created using CreateNode
     * below) and semaphores are local to that coordination node.
     *
     * @generated from rpc Ydb.Coordination.V1.CoordinationService.Session
     */
    readonly session: {
        readonly path: "/Ydb.Coordination.V1.CoordinationService/Session";
        readonly requestStream: true;
        readonly requestSerialize: (message: MessageInitShape<typeof SessionRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").SessionRequest;
        readonly responseStream: true;
        readonly responseSerialize: (message: MessageInitShape<typeof SessionResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").SessionResponse;
        readonly options: {};
    };
    /**
     * Creates a new coordination node
     *
     * @generated from rpc Ydb.Coordination.V1.CoordinationService.CreateNode
     */
    readonly createNode: {
        readonly path: "/Ydb.Coordination.V1.CoordinationService/CreateNode";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof CreateNodeRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").CreateNodeRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof CreateNodeResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").CreateNodeResponse;
        readonly options: {};
    };
    /**
     * Modifies settings of a coordination node
     *
     * @generated from rpc Ydb.Coordination.V1.CoordinationService.AlterNode
     */
    readonly alterNode: {
        readonly path: "/Ydb.Coordination.V1.CoordinationService/AlterNode";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof AlterNodeRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").AlterNodeRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof AlterNodeResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").AlterNodeResponse;
        readonly options: {};
    };
    /**
     * Drops a coordination node
     *
     * @generated from rpc Ydb.Coordination.V1.CoordinationService.DropNode
     */
    readonly dropNode: {
        readonly path: "/Ydb.Coordination.V1.CoordinationService/DropNode";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof DropNodeRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").DropNodeRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof DropNodeResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").DropNodeResponse;
        readonly options: {};
    };
    /**
     * Describes a coordination node
     *
     * @generated from rpc Ydb.Coordination.V1.CoordinationService.DescribeNode
     */
    readonly describeNode: {
        readonly path: "/Ydb.Coordination.V1.CoordinationService/DescribeNode";
        readonly requestStream: false;
        readonly requestSerialize: (message: MessageInitShape<typeof DescribeNodeRequestSchema>) => Uint8Array<ArrayBufferLike>;
        readonly requestDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").DescribeNodeRequest;
        readonly responseStream: false;
        readonly responseSerialize: (message: MessageInitShape<typeof DescribeNodeResponseSchema>) => Uint8Array<ArrayBufferLike>;
        readonly responseDeserialize: (bytes: Uint8Array) => import("./protos/ydb_coordination_pb.js").DescribeNodeResponse;
        readonly options: {};
    };
};
//# sourceMappingURL=ydb_coordination_v1_grpc_pb.d.ts.map