/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { TrunkConnection_Capacity, TrunkConnection } from '../../../../yandex/cloud/cic/v1/trunk_connection';
import { TransceiverType } from '../../../../yandex/cloud/cic/v1/common/transceiver_type';
import { LagAllocationSettingsRequest } from '../../../../yandex/cloud/cic/v1/common/lag_allocation_settings';
import { FieldMask } from '../../../../google/protobuf/field_mask';
import { Operation } from '../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.cic.v1";
export interface GetTrunkConnectionRequest {
    /**
     * ID of the TrunkConnection resource to return.
     * To get the trunkConnection ID use a [TrunkConnectionService.List] request.
     */
    trunkConnectionId: string;
}
export interface ListTrunkConnectionsRequest {
    /**
     * ID of the folder to list TrunkConnection resources.
     * To get the folder ID use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     */
    folderId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListTrunkConnectionsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests. Default value: 100.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token] to the
     * [ListTrunkConnectionsResponse.next_page_token] returned by a previous list request.
     */
    pageToken: string;
    /**
     * A filter expression that filters resources listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can use filtering only on [Subnet.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z][-a-z0-9]{1,61}[a-z0-9]`.
     */
    filter: string;
}
export interface ListTrunkConnectionsResponse {
    /** List of TrunkConnection resources. */
    trunkConnections: TrunkConnection[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListTrunkConnectionsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListTrunkConnectionsRequest.page_token] query parameter
     * in the next list request. Subsequent list requests will have their own
     * [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export interface CreateTrunkConnectionRequest {
    /**
     * Name of the trunkConnection.
     * The name must be unique within the folder.
     * Value must match the regular expression ``\|[a-zA-Z]([-_a-zA-Z0-9]{0,61}[a-zA-Z0-9])?``.
     */
    name: string;
    /** Optional description of the trunkConnection. 0-256 characters long. */
    description: string;
    /** ID of the folder that the trunkConnection belongs to. */
    folderId: string;
    /** ID of the region that the trunkConnection belongs to. */
    regionId: string;
    singlePortDirectJoint?: CreateTrunkConnectionRequest_SinglePortDirectJoint | undefined;
    lagDirectJoint?: CreateTrunkConnectionRequest_LagDirectJoint | undefined;
    partnerJointInfo?: CreateTrunkConnectionRequest_PartnerJoint | undefined;
    /**
     * ID of pointOfPresence that the trunkConnection is deployed on.
     * Optional.
     * If is not set scheduler selects it by himself.
     */
    pointOfPresenceId?: string;
    /** Capacity of the trunkConnection */
    capacity: TrunkConnection_Capacity;
    /**
     * Resource labels, `key:value` pairs.
     * No more than 64 per resource.
     * The maximum string length in characters for each value is 63.
     * Each value must match the regular expression `[-_0-9a-z]*`.
     * The string length in characters for each key must be 1-63.
     * Each key must match the regular expression `[a-z][-_0-9a-z]*`.
     */
    labels: {
        [key: string]: string;
    };
    /**
     * Deletion protection flag.
     * Optional.
     * If set prohibits deletion of the trunkConnection.
     */
    deletionProtection: boolean;
}
export interface CreateTrunkConnectionRequest_LabelsEntry {
    key: string;
    value: string;
}
/** Config of trunkConnection that is deployed on single port. */
export interface CreateTrunkConnectionRequest_SinglePortDirectJoint {
    /** Type of transceiver that the trunkConnection is deployed on. */
    transceiverType: TransceiverType;
}
/** Config of trunkConnection that is deployed on lag. */
export interface CreateTrunkConnectionRequest_LagDirectJoint {
    /** Type of transceiver that the trunkConnection is deployed on. */
    transceiverType: TransceiverType;
    /** LAG allocation settings that the trunkConnection is deployed on. */
    lagAllocationSettings?: LagAllocationSettingsRequest;
}
/** Config of trunkConnection that is deployed on partner joint. */
export interface CreateTrunkConnectionRequest_PartnerJoint {
    /**
     * ID of partner that the trunkConnection is deployed on.
     * Optional.
     * If is not set scheduler selects it by himself.
     */
    partnerId?: string;
}
export interface CreateTrunkConnectionMetadata {
    /** ID of the TrunkConnection resource. */
    trunkConnectionId: string;
}
export interface UpdateTrunkConnectionRequest {
    /** ID of the TrunkConnection resource to return. */
    trunkConnectionId: string;
    /** Field mask that specifies which fields of the TrunkConnection resource are going to be updated. */
    updateMask?: FieldMask;
    /**
     * Name of the trunkConnection.
     * The name must be unique within the folder.
     * Value must match the regular expression ``\|[a-zA-Z]([-_a-zA-Z0-9]{0,61}[a-zA-Z0-9])?``.
     */
    name: string;
    /** Optional description of the trunkConnection. 0-256 characters long. */
    description: string;
    /** ID of the region that the trunkConnection belongs to. */
    regionId: string;
    /**
     * ID of pointOfPresence that the trunkConnection is deployed on.
     * Optional.
     * If is not set scheduler selects it by himself.
     */
    pointOfPresenceId?: string;
    /** Capacity of the trunkConnection */
    capacity: TrunkConnection_Capacity;
    /**
     * Resource labels, `key:value` pairs.
     * No more than 64 per resource.
     * The maximum string length in characters for each value is 63.
     * Each value must match the regular expression `[-_0-9a-z]*`.
     * The string length in characters for each key must be 1-63.
     * Each key must match the regular expression `[a-z][-_0-9a-z]*`.
     */
    labels: {
        [key: string]: string;
    };
    /**
     * Deletion protection flag.
     * Optional.
     * If set prohibits deletion of the trunkConnection.
     */
    deletionProtection: boolean;
}
export interface UpdateTrunkConnectionRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateTrunkConnectionMetadata {
    /** ID of the TrunkConnection resource. */
    trunkConnectionId: string;
}
export interface DeleteTrunkConnectionRequest {
    /** ID of the TrunkConnection resource. */
    trunkConnectionId: string;
}
export interface DeleteTrunkConnectionMetadata {
    /** ID of the TrunkConnection resource. */
    trunkConnectionId: string;
}
export interface ListTrunkConnectionOperationsRequest {
    /** ID of the TrunkConnection resource. */
    trunkConnectionId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListTrunkConnectionOperationsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests. Default value: 100.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token] to the
     * [ListTrunkConnectionOperationsResponse.next_page_token] returned by a previous list request.
     */
    pageToken: string;
}
export interface ListTrunkConnectionOperationsResponse {
    /** List of TrunkConnection operations. */
    operations: Operation[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListTrunkConnectionOperationsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListTrunkConnectionOperationsRequest.page_token] query parameter
     * in the next list request. Subsequent list requests will have their own
     * [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export declare const GetTrunkConnectionRequest: {
    encode(message: GetTrunkConnectionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetTrunkConnectionRequest;
    fromJSON(object: any): GetTrunkConnectionRequest;
    toJSON(message: GetTrunkConnectionRequest): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
    } & Record<Exclude<keyof I, "trunkConnectionId">, never>>(object: I): GetTrunkConnectionRequest;
};
export declare const ListTrunkConnectionsRequest: {
    encode(message: ListTrunkConnectionsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTrunkConnectionsRequest;
    fromJSON(object: any): ListTrunkConnectionsRequest;
    toJSON(message: ListTrunkConnectionsRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & {
        folderId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTrunkConnectionsRequest>, never>>(object: I): ListTrunkConnectionsRequest;
};
export declare const ListTrunkConnectionsResponse: {
    encode(message: ListTrunkConnectionsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTrunkConnectionsResponse;
    fromJSON(object: any): ListTrunkConnectionsResponse;
    toJSON(message: ListTrunkConnectionsResponse): unknown;
    fromPartial<I extends {
        trunkConnections?: {
            id?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            folderId?: string | undefined;
            regionId?: string | undefined;
            createdAt?: Date | undefined;
            singlePortDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            lagDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: {
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            partnerJointInfo?: {
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } | undefined;
            pointOfPresenceId?: string | undefined;
            capacity?: TrunkConnection_Capacity | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            status?: import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_Status | undefined;
            deletionProtection?: boolean | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        trunkConnections?: ({
            id?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            folderId?: string | undefined;
            regionId?: string | undefined;
            createdAt?: Date | undefined;
            singlePortDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            lagDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: {
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            partnerJointInfo?: {
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } | undefined;
            pointOfPresenceId?: string | undefined;
            capacity?: TrunkConnection_Capacity | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            status?: import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_Status | undefined;
            deletionProtection?: boolean | undefined;
        }[] & ({
            id?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            folderId?: string | undefined;
            regionId?: string | undefined;
            createdAt?: Date | undefined;
            singlePortDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            lagDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: {
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            partnerJointInfo?: {
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } | undefined;
            pointOfPresenceId?: string | undefined;
            capacity?: TrunkConnection_Capacity | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            status?: import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_Status | undefined;
            deletionProtection?: boolean | undefined;
        } & {
            id?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            folderId?: string | undefined;
            regionId?: string | undefined;
            createdAt?: Date | undefined;
            singlePortDirectJoint?: ({
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } & {
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } & Record<Exclude<keyof I["trunkConnections"][number]["singlePortDirectJoint"], keyof import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_SinglePortDirectJoint>, never>) | undefined;
            lagDirectJoint?: ({
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: {
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } | undefined;
                accessDeviceName?: string | undefined;
            } & {
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: ({
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } & {
                    lagInfo?: ({
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } & {
                        lagId?: number | undefined;
                        portNames?: (string[] & string[] & Record<Exclude<keyof I["trunkConnections"][number]["lagDirectJoint"]["lagAllocationSettings"]["lagInfo"]["portNames"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["trunkConnections"][number]["lagDirectJoint"]["lagAllocationSettings"]["lagInfo"], keyof import("./common/lag_info").LagInfo>, never>) | undefined;
                } & Record<Exclude<keyof I["trunkConnections"][number]["lagDirectJoint"]["lagAllocationSettings"], "lagInfo">, never>) | undefined;
                accessDeviceName?: string | undefined;
            } & Record<Exclude<keyof I["trunkConnections"][number]["lagDirectJoint"], keyof import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_LagDirectJoint>, never>) | undefined;
            partnerJointInfo?: ({
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } & {
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } & Record<Exclude<keyof I["trunkConnections"][number]["partnerJointInfo"], keyof import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_PartnerJointInfo>, never>) | undefined;
            pointOfPresenceId?: string | undefined;
            capacity?: TrunkConnection_Capacity | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["trunkConnections"][number]["labels"], string | number>, never>) | undefined;
            status?: import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_Status | undefined;
            deletionProtection?: boolean | undefined;
        } & Record<Exclude<keyof I["trunkConnections"][number], keyof TrunkConnection>, never>)[] & Record<Exclude<keyof I["trunkConnections"], keyof {
            id?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            folderId?: string | undefined;
            regionId?: string | undefined;
            createdAt?: Date | undefined;
            singlePortDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                portName?: string | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            lagDirectJoint?: {
                transceiverType?: TransceiverType | undefined;
                lagAllocationSettings?: {
                    lagInfo?: {
                        lagId?: number | undefined;
                        portNames?: string[] | undefined;
                    } | undefined;
                } | undefined;
                accessDeviceName?: string | undefined;
            } | undefined;
            partnerJointInfo?: {
                serviceKey?: string | undefined;
                partnerId?: string | undefined;
            } | undefined;
            pointOfPresenceId?: string | undefined;
            capacity?: TrunkConnection_Capacity | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            status?: import("../../../../yandex/cloud/cic/v1/trunk_connection").TrunkConnection_Status | undefined;
            deletionProtection?: boolean | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTrunkConnectionsResponse>, never>>(object: I): ListTrunkConnectionsResponse;
};
export declare const CreateTrunkConnectionRequest: {
    encode(message: CreateTrunkConnectionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionRequest;
    fromJSON(object: any): CreateTrunkConnectionRequest;
    toJSON(message: CreateTrunkConnectionRequest): unknown;
    fromPartial<I extends {
        name?: string | undefined;
        description?: string | undefined;
        folderId?: string | undefined;
        regionId?: string | undefined;
        singlePortDirectJoint?: {
            transceiverType?: TransceiverType | undefined;
        } | undefined;
        lagDirectJoint?: {
            transceiverType?: TransceiverType | undefined;
            lagAllocationSettings?: {
                lagSize?: number | undefined;
            } | undefined;
        } | undefined;
        partnerJointInfo?: {
            partnerId?: string | undefined;
        } | undefined;
        pointOfPresenceId?: string | undefined;
        capacity?: TrunkConnection_Capacity | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        deletionProtection?: boolean | undefined;
    } & {
        name?: string | undefined;
        description?: string | undefined;
        folderId?: string | undefined;
        regionId?: string | undefined;
        singlePortDirectJoint?: ({
            transceiverType?: TransceiverType | undefined;
        } & {
            transceiverType?: TransceiverType | undefined;
        } & Record<Exclude<keyof I["singlePortDirectJoint"], "transceiverType">, never>) | undefined;
        lagDirectJoint?: ({
            transceiverType?: TransceiverType | undefined;
            lagAllocationSettings?: {
                lagSize?: number | undefined;
            } | undefined;
        } & {
            transceiverType?: TransceiverType | undefined;
            lagAllocationSettings?: ({
                lagSize?: number | undefined;
            } & {
                lagSize?: number | undefined;
            } & Record<Exclude<keyof I["lagDirectJoint"]["lagAllocationSettings"], "lagSize">, never>) | undefined;
        } & Record<Exclude<keyof I["lagDirectJoint"], keyof CreateTrunkConnectionRequest_LagDirectJoint>, never>) | undefined;
        partnerJointInfo?: ({
            partnerId?: string | undefined;
        } & {
            partnerId?: string | undefined;
        } & Record<Exclude<keyof I["partnerJointInfo"], "partnerId">, never>) | undefined;
        pointOfPresenceId?: string | undefined;
        capacity?: TrunkConnection_Capacity | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        deletionProtection?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof CreateTrunkConnectionRequest>, never>>(object: I): CreateTrunkConnectionRequest;
};
export declare const CreateTrunkConnectionRequest_LabelsEntry: {
    encode(message: CreateTrunkConnectionRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionRequest_LabelsEntry;
    fromJSON(object: any): CreateTrunkConnectionRequest_LabelsEntry;
    toJSON(message: CreateTrunkConnectionRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateTrunkConnectionRequest_LabelsEntry>, never>>(object: I): CreateTrunkConnectionRequest_LabelsEntry;
};
export declare const CreateTrunkConnectionRequest_SinglePortDirectJoint: {
    encode(message: CreateTrunkConnectionRequest_SinglePortDirectJoint, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionRequest_SinglePortDirectJoint;
    fromJSON(object: any): CreateTrunkConnectionRequest_SinglePortDirectJoint;
    toJSON(message: CreateTrunkConnectionRequest_SinglePortDirectJoint): unknown;
    fromPartial<I extends {
        transceiverType?: TransceiverType | undefined;
    } & {
        transceiverType?: TransceiverType | undefined;
    } & Record<Exclude<keyof I, "transceiverType">, never>>(object: I): CreateTrunkConnectionRequest_SinglePortDirectJoint;
};
export declare const CreateTrunkConnectionRequest_LagDirectJoint: {
    encode(message: CreateTrunkConnectionRequest_LagDirectJoint, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionRequest_LagDirectJoint;
    fromJSON(object: any): CreateTrunkConnectionRequest_LagDirectJoint;
    toJSON(message: CreateTrunkConnectionRequest_LagDirectJoint): unknown;
    fromPartial<I extends {
        transceiverType?: TransceiverType | undefined;
        lagAllocationSettings?: {
            lagSize?: number | undefined;
        } | undefined;
    } & {
        transceiverType?: TransceiverType | undefined;
        lagAllocationSettings?: ({
            lagSize?: number | undefined;
        } & {
            lagSize?: number | undefined;
        } & Record<Exclude<keyof I["lagAllocationSettings"], "lagSize">, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateTrunkConnectionRequest_LagDirectJoint>, never>>(object: I): CreateTrunkConnectionRequest_LagDirectJoint;
};
export declare const CreateTrunkConnectionRequest_PartnerJoint: {
    encode(message: CreateTrunkConnectionRequest_PartnerJoint, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionRequest_PartnerJoint;
    fromJSON(object: any): CreateTrunkConnectionRequest_PartnerJoint;
    toJSON(message: CreateTrunkConnectionRequest_PartnerJoint): unknown;
    fromPartial<I extends {
        partnerId?: string | undefined;
    } & {
        partnerId?: string | undefined;
    } & Record<Exclude<keyof I, "partnerId">, never>>(object: I): CreateTrunkConnectionRequest_PartnerJoint;
};
export declare const CreateTrunkConnectionMetadata: {
    encode(message: CreateTrunkConnectionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateTrunkConnectionMetadata;
    fromJSON(object: any): CreateTrunkConnectionMetadata;
    toJSON(message: CreateTrunkConnectionMetadata): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
    } & Record<Exclude<keyof I, "trunkConnectionId">, never>>(object: I): CreateTrunkConnectionMetadata;
};
export declare const UpdateTrunkConnectionRequest: {
    encode(message: UpdateTrunkConnectionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTrunkConnectionRequest;
    fromJSON(object: any): UpdateTrunkConnectionRequest;
    toJSON(message: UpdateTrunkConnectionRequest): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        regionId?: string | undefined;
        pointOfPresenceId?: string | undefined;
        capacity?: TrunkConnection_Capacity | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        deletionProtection?: boolean | undefined;
    } & {
        trunkConnectionId?: string | undefined;
        updateMask?: ({
            paths?: string[] | undefined;
        } & {
            paths?: (string[] & string[] & Record<Exclude<keyof I["updateMask"]["paths"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["updateMask"], "paths">, never>) | undefined;
        name?: string | undefined;
        description?: string | undefined;
        regionId?: string | undefined;
        pointOfPresenceId?: string | undefined;
        capacity?: TrunkConnection_Capacity | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        deletionProtection?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof UpdateTrunkConnectionRequest>, never>>(object: I): UpdateTrunkConnectionRequest;
};
export declare const UpdateTrunkConnectionRequest_LabelsEntry: {
    encode(message: UpdateTrunkConnectionRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTrunkConnectionRequest_LabelsEntry;
    fromJSON(object: any): UpdateTrunkConnectionRequest_LabelsEntry;
    toJSON(message: UpdateTrunkConnectionRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateTrunkConnectionRequest_LabelsEntry>, never>>(object: I): UpdateTrunkConnectionRequest_LabelsEntry;
};
export declare const UpdateTrunkConnectionMetadata: {
    encode(message: UpdateTrunkConnectionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateTrunkConnectionMetadata;
    fromJSON(object: any): UpdateTrunkConnectionMetadata;
    toJSON(message: UpdateTrunkConnectionMetadata): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
    } & Record<Exclude<keyof I, "trunkConnectionId">, never>>(object: I): UpdateTrunkConnectionMetadata;
};
export declare const DeleteTrunkConnectionRequest: {
    encode(message: DeleteTrunkConnectionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTrunkConnectionRequest;
    fromJSON(object: any): DeleteTrunkConnectionRequest;
    toJSON(message: DeleteTrunkConnectionRequest): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
    } & Record<Exclude<keyof I, "trunkConnectionId">, never>>(object: I): DeleteTrunkConnectionRequest;
};
export declare const DeleteTrunkConnectionMetadata: {
    encode(message: DeleteTrunkConnectionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteTrunkConnectionMetadata;
    fromJSON(object: any): DeleteTrunkConnectionMetadata;
    toJSON(message: DeleteTrunkConnectionMetadata): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
    } & Record<Exclude<keyof I, "trunkConnectionId">, never>>(object: I): DeleteTrunkConnectionMetadata;
};
export declare const ListTrunkConnectionOperationsRequest: {
    encode(message: ListTrunkConnectionOperationsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTrunkConnectionOperationsRequest;
    fromJSON(object: any): ListTrunkConnectionOperationsRequest;
    toJSON(message: ListTrunkConnectionOperationsRequest): unknown;
    fromPartial<I extends {
        trunkConnectionId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        trunkConnectionId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTrunkConnectionOperationsRequest>, never>>(object: I): ListTrunkConnectionOperationsRequest;
};
export declare const ListTrunkConnectionOperationsResponse: {
    encode(message: ListTrunkConnectionOperationsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListTrunkConnectionOperationsResponse;
    fromJSON(object: any): ListTrunkConnectionOperationsResponse;
    toJSON(message: ListTrunkConnectionOperationsResponse): unknown;
    fromPartial<I extends {
        operations?: {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        operations?: ({
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: ({
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & Record<Exclude<keyof I["operations"][number]["metadata"], keyof import("../../../../google/protobuf/any").Any>, never>) | undefined;
            error?: ({
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } & {
                code?: number | undefined;
                message?: string | undefined;
                details?: ({
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] & ({
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                } & {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                } & Record<Exclude<keyof I["operations"][number]["error"]["details"][number], keyof import("../../../../google/protobuf/any").Any>, never>)[] & Record<Exclude<keyof I["operations"][number]["error"]["details"], keyof {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["operations"][number]["error"], keyof import("../../../../google/rpc/status").Status>, never>) | undefined;
            response?: ({
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & Record<Exclude<keyof I["operations"][number]["response"], keyof import("../../../../google/protobuf/any").Any>, never>) | undefined;
        } & Record<Exclude<keyof I["operations"][number], keyof Operation>, never>)[] & Record<Exclude<keyof I["operations"], keyof {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListTrunkConnectionOperationsResponse>, never>>(object: I): ListTrunkConnectionOperationsResponse;
};
/** A set of methods for managing TrunkConnection resources. */
export declare const TrunkConnectionServiceService: {
    /**
     * Returns the specified TrunkConnection resource.
     *
     * To get the list of available TrunkConnection resources, make a [List] request.
     */
    readonly get: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetTrunkConnectionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetTrunkConnectionRequest;
        readonly responseSerialize: (value: TrunkConnection) => Buffer;
        readonly responseDeserialize: (value: Buffer) => TrunkConnection;
    };
    /** Retrieves the list of TrunkConnection resources in the specified folder. */
    readonly list: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListTrunkConnectionsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListTrunkConnectionsRequest;
        readonly responseSerialize: (value: ListTrunkConnectionsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListTrunkConnectionsResponse;
    };
    /**
     * Creates a TrunkConnection resource in the specified folder using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    readonly create: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateTrunkConnectionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateTrunkConnectionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /**
     * Updates a TrunkConnection resource using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    readonly update: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateTrunkConnectionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateTrunkConnectionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /**
     * Deletes a TrunkConnection resource.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    readonly delete: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteTrunkConnectionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteTrunkConnectionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Lists operations for the specified TrunkConnection. */
    readonly listOperations: {
        readonly path: "/yandex.cloud.cic.v1.TrunkConnectionService/ListOperations";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListTrunkConnectionOperationsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListTrunkConnectionOperationsRequest;
        readonly responseSerialize: (value: ListTrunkConnectionOperationsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListTrunkConnectionOperationsResponse;
    };
};
export interface TrunkConnectionServiceServer extends UntypedServiceImplementation {
    /**
     * Returns the specified TrunkConnection resource.
     *
     * To get the list of available TrunkConnection resources, make a [List] request.
     */
    get: handleUnaryCall<GetTrunkConnectionRequest, TrunkConnection>;
    /** Retrieves the list of TrunkConnection resources in the specified folder. */
    list: handleUnaryCall<ListTrunkConnectionsRequest, ListTrunkConnectionsResponse>;
    /**
     * Creates a TrunkConnection resource in the specified folder using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    create: handleUnaryCall<CreateTrunkConnectionRequest, Operation>;
    /**
     * Updates a TrunkConnection resource using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    update: handleUnaryCall<UpdateTrunkConnectionRequest, Operation>;
    /**
     * Deletes a TrunkConnection resource.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    delete: handleUnaryCall<DeleteTrunkConnectionRequest, Operation>;
    /** Lists operations for the specified TrunkConnection. */
    listOperations: handleUnaryCall<ListTrunkConnectionOperationsRequest, ListTrunkConnectionOperationsResponse>;
}
export interface TrunkConnectionServiceClient extends Client {
    /**
     * Returns the specified TrunkConnection resource.
     *
     * To get the list of available TrunkConnection resources, make a [List] request.
     */
    get(request: GetTrunkConnectionRequest, callback: (error: ServiceError | null, response: TrunkConnection) => void): ClientUnaryCall;
    get(request: GetTrunkConnectionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: TrunkConnection) => void): ClientUnaryCall;
    get(request: GetTrunkConnectionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: TrunkConnection) => void): ClientUnaryCall;
    /** Retrieves the list of TrunkConnection resources in the specified folder. */
    list(request: ListTrunkConnectionsRequest, callback: (error: ServiceError | null, response: ListTrunkConnectionsResponse) => void): ClientUnaryCall;
    list(request: ListTrunkConnectionsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListTrunkConnectionsResponse) => void): ClientUnaryCall;
    list(request: ListTrunkConnectionsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListTrunkConnectionsResponse) => void): ClientUnaryCall;
    /**
     * Creates a TrunkConnection resource in the specified folder using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    create(request: CreateTrunkConnectionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateTrunkConnectionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateTrunkConnectionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /**
     * Updates a TrunkConnection resource using the data specified in the request.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    update(request: UpdateTrunkConnectionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateTrunkConnectionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateTrunkConnectionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /**
     * Deletes a TrunkConnection resource.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    delete(request: DeleteTrunkConnectionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteTrunkConnectionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteTrunkConnectionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Lists operations for the specified TrunkConnection. */
    listOperations(request: ListTrunkConnectionOperationsRequest, callback: (error: ServiceError | null, response: ListTrunkConnectionOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListTrunkConnectionOperationsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListTrunkConnectionOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListTrunkConnectionOperationsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListTrunkConnectionOperationsResponse) => void): ClientUnaryCall;
}
export declare const TrunkConnectionServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): TrunkConnectionServiceClient;
    service: typeof TrunkConnectionServiceService;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
