/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { FieldMask } from '../../../../google/protobuf/field_mask';
import { Network } from '../../../../yandex/cloud/vpc/v1/network';
import { Subnet } from '../../../../yandex/cloud/vpc/v1/subnet';
import { SecurityGroup } from '../../../../yandex/cloud/vpc/v1/security_group';
import { RouteTable } from '../../../../yandex/cloud/vpc/v1/route_table';
import { Operation } from '../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.vpc.v1";
export interface GetNetworkRequest {
    /**
     * ID of the Network resource to return.
     * To get the network ID, use a [NetworkService.List] request.
     */
    networkId: string;
}
export interface ListNetworksRequest {
    /**
     * ID of the folder to list networks in.
     * 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 [ListNetworksResponse.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
     * [ListNetworksResponse.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 the [Network.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 ListNetworksResponse {
    /** List of Network resources. */
    networks: Network[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListNetworksRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListNetworksRequest.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 CreateNetworkRequest {
    /**
     * ID of the folder for this request to create a network in.
     * To get the folder ID, use a [yandex.cloud.resourcemanager.v1.FolderService.List] request.
     */
    folderId: string;
    /**
     * Name of the network.
     * The name must be unique within the folder.
     */
    name: string;
    /** Description of the network. */
    description: string;
    /** Resource labels as `` key:value `` pairs. */
    labels: {
        [key: string]: string;
    };
}
export interface CreateNetworkRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface CreateNetworkMetadata {
    /** ID of the Network that is being created. */
    networkId: string;
}
export interface UpdateNetworkRequest {
    /**
     * ID of the Network resource to update.
     * To get the network ID use a [NetworkService.List] request.
     */
    networkId: string;
    /** Field mask that specifies which fields of the Network resource are going to be updated. */
    updateMask?: FieldMask;
    /**
     * Name of the network.
     * The name must be unique within the folder.
     */
    name: string;
    /** Description of the network. */
    description: string;
    /** Resource labels as `` key:value `` pairs. */
    labels: {
        [key: string]: string;
    };
}
export interface UpdateNetworkRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateNetworkMetadata {
    /** ID of the Network resource that is being updated. */
    networkId: string;
}
export interface DeleteNetworkRequest {
    /**
     * ID of the Network resource to update.
     * To get the network ID, use a [NetworkService.List] request.
     */
    networkId: string;
}
export interface DeleteNetworkMetadata {
    /** ID of the network that is being deleted. */
    networkId: string;
}
export interface ListNetworkSubnetsRequest {
    /** ID of the Network resource to list subnets for. */
    networkId: string;
    /**
     * The maximum number of results per page that should be returned. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListNetworkSubnetsResponse.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. Set [page_token]
     * to the [ListNetworkSubnetsResponse.next_page_token]
     * returned by a previous list request to get the next page of results.
     */
    pageToken: string;
}
export interface ListNetworkSubnetsResponse {
    /** List of subnets that belong to the network which is specified in the request. */
    subnets: Subnet[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListNetworkSubnetsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListNetworkSubnetsRequest.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 ListNetworkSecurityGroupsRequest {
    /** ID of the Network resource to list security groups for. */
    networkId: string;
    /**
     * The maximum number of results per page that should be returned. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListNetworkSecurityGroupsResponse.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. Set [page_token]
     * to the [ListNetworkSecurityGroupsResponse.next_page_token]
     * returned by a previous list request to get the next page of results.
     */
    pageToken: string;
}
export interface ListNetworkSecurityGroupsResponse {
    /** List of security groups that belong to the network which is specified in the request. */
    securityGroups: SecurityGroup[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListNetworkSecurityGroupsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListNetworkSecurityGroupsRequest.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 ListNetworkRouteTablesRequest {
    /** ID of the Network resource to list route tables for. */
    networkId: string;
    /**
     * The maximum number of results per page that should be returned. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListNetworkRouteTablesResponse.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. Set [page_token]
     * to the [ListNetworkRouteTablesResponse.next_page_token]
     * returned by a previous list request to get the next page of results.
     */
    pageToken: string;
}
export interface ListNetworkRouteTablesResponse {
    /** List of route tables that belong to the network which is specified in the request. */
    routeTables: RouteTable[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListNetworkRouteTablesRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListNetworkRouteTablesRequest.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 ListNetworkOperationsRequest {
    /** ID of the Network resource to list operations for. */
    networkId: string;
    /**
     * The maximum number of results per page that should be returned. If the number of available
     * results is larger than [page_size], the service returns a [ListNetworkOperationsResponse.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
     * [ListNetworkOperationsResponse.next_page_token] returned by a previous list request.
     */
    pageToken: string;
}
export interface ListNetworkOperationsResponse {
    /** List of operations for the specified network. */
    operations: Operation[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListNetworkOperationsRequest.page_size], use the [next_page_token] as the value
     * for the [ListNetworkOperationsRequest.page_token] query parameter in the next list request.
     * Each subsequent list request will have its own [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export interface MoveNetworkRequest {
    /** ID of the Network resource to move. */
    networkId: string;
    /** ID of the destination folder. */
    destinationFolderId: string;
}
export interface MoveNetworkMetadata {
    /** ID of the network that is being moved. */
    networkId: string;
}
export declare const GetNetworkRequest: {
    encode(message: GetNetworkRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetNetworkRequest;
    fromJSON(object: any): GetNetworkRequest;
    toJSON(message: GetNetworkRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): GetNetworkRequest;
};
export declare const ListNetworksRequest: {
    encode(message: ListNetworksRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworksRequest;
    fromJSON(object: any): ListNetworksRequest;
    toJSON(message: ListNetworksRequest): 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 ListNetworksRequest>, never>>(object: I): ListNetworksRequest;
};
export declare const ListNetworksResponse: {
    encode(message: ListNetworksResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworksResponse;
    fromJSON(object: any): ListNetworksResponse;
    toJSON(message: ListNetworksResponse): unknown;
    fromPartial<I extends {
        networks?: {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            defaultSecurityGroupId?: string | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        networks?: ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            defaultSecurityGroupId?: string | undefined;
        }[] & ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            defaultSecurityGroupId?: string | undefined;
        } & {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["networks"][number]["labels"], string | number>, never>) | undefined;
            defaultSecurityGroupId?: string | undefined;
        } & Record<Exclude<keyof I["networks"][number], keyof Network>, never>)[] & Record<Exclude<keyof I["networks"], keyof {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            defaultSecurityGroupId?: string | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworksResponse>, never>>(object: I): ListNetworksResponse;
};
export declare const CreateNetworkRequest: {
    encode(message: CreateNetworkRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateNetworkRequest;
    fromJSON(object: any): CreateNetworkRequest;
    toJSON(message: CreateNetworkRequest): unknown;
    fromPartial<I extends {
        folderId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        folderId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateNetworkRequest>, never>>(object: I): CreateNetworkRequest;
};
export declare const CreateNetworkRequest_LabelsEntry: {
    encode(message: CreateNetworkRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateNetworkRequest_LabelsEntry;
    fromJSON(object: any): CreateNetworkRequest_LabelsEntry;
    toJSON(message: CreateNetworkRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateNetworkRequest_LabelsEntry>, never>>(object: I): CreateNetworkRequest_LabelsEntry;
};
export declare const CreateNetworkMetadata: {
    encode(message: CreateNetworkMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateNetworkMetadata;
    fromJSON(object: any): CreateNetworkMetadata;
    toJSON(message: CreateNetworkMetadata): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): CreateNetworkMetadata;
};
export declare const UpdateNetworkRequest: {
    encode(message: UpdateNetworkRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateNetworkRequest;
    fromJSON(object: any): UpdateNetworkRequest;
    toJSON(message: UpdateNetworkRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        networkId?: 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;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateNetworkRequest>, never>>(object: I): UpdateNetworkRequest;
};
export declare const UpdateNetworkRequest_LabelsEntry: {
    encode(message: UpdateNetworkRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateNetworkRequest_LabelsEntry;
    fromJSON(object: any): UpdateNetworkRequest_LabelsEntry;
    toJSON(message: UpdateNetworkRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateNetworkRequest_LabelsEntry>, never>>(object: I): UpdateNetworkRequest_LabelsEntry;
};
export declare const UpdateNetworkMetadata: {
    encode(message: UpdateNetworkMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateNetworkMetadata;
    fromJSON(object: any): UpdateNetworkMetadata;
    toJSON(message: UpdateNetworkMetadata): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): UpdateNetworkMetadata;
};
export declare const DeleteNetworkRequest: {
    encode(message: DeleteNetworkRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteNetworkRequest;
    fromJSON(object: any): DeleteNetworkRequest;
    toJSON(message: DeleteNetworkRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): DeleteNetworkRequest;
};
export declare const DeleteNetworkMetadata: {
    encode(message: DeleteNetworkMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteNetworkMetadata;
    fromJSON(object: any): DeleteNetworkMetadata;
    toJSON(message: DeleteNetworkMetadata): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): DeleteNetworkMetadata;
};
export declare const ListNetworkSubnetsRequest: {
    encode(message: ListNetworkSubnetsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkSubnetsRequest;
    fromJSON(object: any): ListNetworkSubnetsRequest;
    toJSON(message: ListNetworkSubnetsRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkSubnetsRequest>, never>>(object: I): ListNetworkSubnetsRequest;
};
export declare const ListNetworkSubnetsResponse: {
    encode(message: ListNetworkSubnetsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkSubnetsResponse;
    fromJSON(object: any): ListNetworkSubnetsResponse;
    toJSON(message: ListNetworkSubnetsResponse): unknown;
    fromPartial<I extends {
        subnets?: {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            zoneId?: string | undefined;
            v4CidrBlocks?: string[] | undefined;
            v6CidrBlocks?: string[] | undefined;
            routeTableId?: string | undefined;
            dhcpOptions?: {
                domainNameServers?: string[] | undefined;
                domainName?: string | undefined;
                ntpServers?: string[] | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        subnets?: ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            zoneId?: string | undefined;
            v4CidrBlocks?: string[] | undefined;
            v6CidrBlocks?: string[] | undefined;
            routeTableId?: string | undefined;
            dhcpOptions?: {
                domainNameServers?: string[] | undefined;
                domainName?: string | undefined;
                ntpServers?: string[] | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            zoneId?: string | undefined;
            v4CidrBlocks?: string[] | undefined;
            v6CidrBlocks?: string[] | undefined;
            routeTableId?: string | undefined;
            dhcpOptions?: {
                domainNameServers?: string[] | undefined;
                domainName?: string | undefined;
                ntpServers?: string[] | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["subnets"][number]["labels"], string | number>, never>) | undefined;
            networkId?: string | undefined;
            zoneId?: string | undefined;
            v4CidrBlocks?: (string[] & string[] & Record<Exclude<keyof I["subnets"][number]["v4CidrBlocks"], keyof string[]>, never>) | undefined;
            v6CidrBlocks?: (string[] & string[] & Record<Exclude<keyof I["subnets"][number]["v6CidrBlocks"], keyof string[]>, never>) | undefined;
            routeTableId?: string | undefined;
            dhcpOptions?: ({
                domainNameServers?: string[] | undefined;
                domainName?: string | undefined;
                ntpServers?: string[] | undefined;
            } & {
                domainNameServers?: (string[] & string[] & Record<Exclude<keyof I["subnets"][number]["dhcpOptions"]["domainNameServers"], keyof string[]>, never>) | undefined;
                domainName?: string | undefined;
                ntpServers?: (string[] & string[] & Record<Exclude<keyof I["subnets"][number]["dhcpOptions"]["ntpServers"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["subnets"][number]["dhcpOptions"], keyof import("../../../../yandex/cloud/vpc/v1/subnet").DhcpOptions>, never>) | undefined;
        } & Record<Exclude<keyof I["subnets"][number], keyof Subnet>, never>)[] & Record<Exclude<keyof I["subnets"], keyof {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            zoneId?: string | undefined;
            v4CidrBlocks?: string[] | undefined;
            v6CidrBlocks?: string[] | undefined;
            routeTableId?: string | undefined;
            dhcpOptions?: {
                domainNameServers?: string[] | undefined;
                domainName?: string | undefined;
                ntpServers?: string[] | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkSubnetsResponse>, never>>(object: I): ListNetworkSubnetsResponse;
};
export declare const ListNetworkSecurityGroupsRequest: {
    encode(message: ListNetworkSecurityGroupsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkSecurityGroupsRequest;
    fromJSON(object: any): ListNetworkSecurityGroupsRequest;
    toJSON(message: ListNetworkSecurityGroupsRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkSecurityGroupsRequest>, never>>(object: I): ListNetworkSecurityGroupsRequest;
};
export declare const ListNetworkSecurityGroupsResponse: {
    encode(message: ListNetworkSecurityGroupsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkSecurityGroupsResponse;
    fromJSON(object: any): ListNetworkSecurityGroupsResponse;
    toJSON(message: ListNetworkSecurityGroupsResponse): unknown;
    fromPartial<I extends {
        securityGroups?: {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            status?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroup_Status | undefined;
            rules?: {
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[] | undefined;
            defaultForNetwork?: boolean | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        securityGroups?: ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            status?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroup_Status | undefined;
            rules?: {
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[] | undefined;
            defaultForNetwork?: boolean | undefined;
        }[] & ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            status?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroup_Status | undefined;
            rules?: {
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[] | undefined;
            defaultForNetwork?: boolean | undefined;
        } & {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["securityGroups"][number]["labels"], string | number>, never>) | undefined;
            networkId?: string | undefined;
            status?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroup_Status | undefined;
            rules?: ({
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[] & ({
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            } & {
                id?: string | undefined;
                description?: string | undefined;
                labels?: ({
                    [x: string]: string | undefined;
                } & {
                    [x: string]: string | undefined;
                } & Record<Exclude<keyof I["securityGroups"][number]["rules"][number]["labels"], string | number>, never>) | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: ({
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } & {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } & Record<Exclude<keyof I["securityGroups"][number]["rules"][number]["ports"], keyof import("../../../../yandex/cloud/vpc/v1/security_group").PortRange>, never>) | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: ({
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } & {
                    v4CidrBlocks?: (string[] & string[] & Record<Exclude<keyof I["securityGroups"][number]["rules"][number]["cidrBlocks"]["v4CidrBlocks"], keyof string[]>, never>) | undefined;
                    v6CidrBlocks?: (string[] & string[] & Record<Exclude<keyof I["securityGroups"][number]["rules"][number]["cidrBlocks"]["v6CidrBlocks"], keyof string[]>, never>) | undefined;
                } & Record<Exclude<keyof I["securityGroups"][number]["rules"][number]["cidrBlocks"], keyof import("../../../../yandex/cloud/vpc/v1/security_group").CidrBlocks>, never>) | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            } & Record<Exclude<keyof I["securityGroups"][number]["rules"][number], keyof import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule>, never>)[] & Record<Exclude<keyof I["securityGroups"][number]["rules"], keyof {
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[]>, never>) | undefined;
            defaultForNetwork?: boolean | undefined;
        } & Record<Exclude<keyof I["securityGroups"][number], keyof SecurityGroup>, never>)[] & Record<Exclude<keyof I["securityGroups"], keyof {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            status?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroup_Status | undefined;
            rules?: {
                id?: string | undefined;
                description?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
                direction?: import("../../../../yandex/cloud/vpc/v1/security_group").SecurityGroupRule_Direction | undefined;
                ports?: {
                    fromPort?: number | undefined;
                    toPort?: number | undefined;
                } | undefined;
                protocolName?: string | undefined;
                protocolNumber?: number | undefined;
                cidrBlocks?: {
                    v4CidrBlocks?: string[] | undefined;
                    v6CidrBlocks?: string[] | undefined;
                } | undefined;
                securityGroupId?: string | undefined;
                predefinedTarget?: string | undefined;
            }[] | undefined;
            defaultForNetwork?: boolean | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkSecurityGroupsResponse>, never>>(object: I): ListNetworkSecurityGroupsResponse;
};
export declare const ListNetworkRouteTablesRequest: {
    encode(message: ListNetworkRouteTablesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkRouteTablesRequest;
    fromJSON(object: any): ListNetworkRouteTablesRequest;
    toJSON(message: ListNetworkRouteTablesRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkRouteTablesRequest>, never>>(object: I): ListNetworkRouteTablesRequest;
};
export declare const ListNetworkRouteTablesResponse: {
    encode(message: ListNetworkRouteTablesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkRouteTablesResponse;
    fromJSON(object: any): ListNetworkRouteTablesResponse;
    toJSON(message: ListNetworkRouteTablesResponse): unknown;
    fromPartial<I extends {
        routeTables?: {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            staticRoutes?: {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[] | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        routeTables?: ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            staticRoutes?: {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[] | undefined;
        }[] & ({
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            staticRoutes?: {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[] | undefined;
        } & {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["routeTables"][number]["labels"], string | number>, never>) | undefined;
            networkId?: string | undefined;
            staticRoutes?: ({
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[] & ({
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            } & {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: ({
                    [x: string]: string | undefined;
                } & {
                    [x: string]: string | undefined;
                } & Record<Exclude<keyof I["routeTables"][number]["staticRoutes"][number]["labels"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["routeTables"][number]["staticRoutes"][number], keyof import("../../../../yandex/cloud/vpc/v1/route_table").StaticRoute>, never>)[] & Record<Exclude<keyof I["routeTables"][number]["staticRoutes"], keyof {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[]>, never>) | undefined;
        } & Record<Exclude<keyof I["routeTables"][number], keyof RouteTable>, never>)[] & Record<Exclude<keyof I["routeTables"], keyof {
            id?: string | undefined;
            folderId?: string | undefined;
            createdAt?: Date | undefined;
            name?: string | undefined;
            description?: string | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
            networkId?: string | undefined;
            staticRoutes?: {
                destinationPrefix?: string | undefined;
                nextHopAddress?: string | undefined;
                gatewayId?: string | undefined;
                labels?: {
                    [x: string]: string | undefined;
                } | undefined;
            }[] | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkRouteTablesResponse>, never>>(object: I): ListNetworkRouteTablesResponse;
};
export declare const ListNetworkOperationsRequest: {
    encode(message: ListNetworkOperationsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkOperationsRequest;
    fromJSON(object: any): ListNetworkOperationsRequest;
    toJSON(message: ListNetworkOperationsRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        networkId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListNetworkOperationsRequest>, never>>(object: I): ListNetworkOperationsRequest;
};
export declare const ListNetworkOperationsResponse: {
    encode(message: ListNetworkOperationsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListNetworkOperationsResponse;
    fromJSON(object: any): ListNetworkOperationsResponse;
    toJSON(message: ListNetworkOperationsResponse): 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 ListNetworkOperationsResponse>, never>>(object: I): ListNetworkOperationsResponse;
};
export declare const MoveNetworkRequest: {
    encode(message: MoveNetworkRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MoveNetworkRequest;
    fromJSON(object: any): MoveNetworkRequest;
    toJSON(message: MoveNetworkRequest): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
        destinationFolderId?: string | undefined;
    } & {
        networkId?: string | undefined;
        destinationFolderId?: string | undefined;
    } & Record<Exclude<keyof I, keyof MoveNetworkRequest>, never>>(object: I): MoveNetworkRequest;
};
export declare const MoveNetworkMetadata: {
    encode(message: MoveNetworkMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MoveNetworkMetadata;
    fromJSON(object: any): MoveNetworkMetadata;
    toJSON(message: MoveNetworkMetadata): unknown;
    fromPartial<I extends {
        networkId?: string | undefined;
    } & {
        networkId?: string | undefined;
    } & Record<Exclude<keyof I, "networkId">, never>>(object: I): MoveNetworkMetadata;
};
/** A set of methods for managing Network resources. */
export declare const NetworkServiceService: {
    /**
     * Returns the specified Network resource.
     *
     * Get the list of available Network resources by making a [List] request.
     */
    readonly get: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetNetworkRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetNetworkRequest;
        readonly responseSerialize: (value: Network) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Network;
    };
    /** Retrieves the list of Network resources in the specified folder. */
    readonly list: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListNetworksRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListNetworksRequest;
        readonly responseSerialize: (value: ListNetworksResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListNetworksResponse;
    };
    /**
     * Creates a network 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.vpc.v1.NetworkService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateNetworkRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateNetworkRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /**
     * Updates the specified network.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    readonly update: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateNetworkRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateNetworkRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Deletes the specified network. */
    readonly delete: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteNetworkRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteNetworkRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Lists subnets from the specified network. */
    readonly listSubnets: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/ListSubnets";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListNetworkSubnetsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListNetworkSubnetsRequest;
        readonly responseSerialize: (value: ListNetworkSubnetsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListNetworkSubnetsResponse;
    };
    /** Lists security groups from the specified network. */
    readonly listSecurityGroups: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/ListSecurityGroups";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListNetworkSecurityGroupsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListNetworkSecurityGroupsRequest;
        readonly responseSerialize: (value: ListNetworkSecurityGroupsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListNetworkSecurityGroupsResponse;
    };
    /** Lists route tables from the specified network. */
    readonly listRouteTables: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/ListRouteTables";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListNetworkRouteTablesRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListNetworkRouteTablesRequest;
        readonly responseSerialize: (value: ListNetworkRouteTablesResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListNetworkRouteTablesResponse;
    };
    /** Lists operations for the specified network. */
    readonly listOperations: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/ListOperations";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListNetworkOperationsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListNetworkOperationsRequest;
        readonly responseSerialize: (value: ListNetworkOperationsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListNetworkOperationsResponse;
    };
    /** Move network to another folder. */
    readonly move: {
        readonly path: "/yandex.cloud.vpc.v1.NetworkService/Move";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: MoveNetworkRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => MoveNetworkRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
};
export interface NetworkServiceServer extends UntypedServiceImplementation {
    /**
     * Returns the specified Network resource.
     *
     * Get the list of available Network resources by making a [List] request.
     */
    get: handleUnaryCall<GetNetworkRequest, Network>;
    /** Retrieves the list of Network resources in the specified folder. */
    list: handleUnaryCall<ListNetworksRequest, ListNetworksResponse>;
    /**
     * Creates a network 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<CreateNetworkRequest, Operation>;
    /**
     * Updates the specified network.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    update: handleUnaryCall<UpdateNetworkRequest, Operation>;
    /** Deletes the specified network. */
    delete: handleUnaryCall<DeleteNetworkRequest, Operation>;
    /** Lists subnets from the specified network. */
    listSubnets: handleUnaryCall<ListNetworkSubnetsRequest, ListNetworkSubnetsResponse>;
    /** Lists security groups from the specified network. */
    listSecurityGroups: handleUnaryCall<ListNetworkSecurityGroupsRequest, ListNetworkSecurityGroupsResponse>;
    /** Lists route tables from the specified network. */
    listRouteTables: handleUnaryCall<ListNetworkRouteTablesRequest, ListNetworkRouteTablesResponse>;
    /** Lists operations for the specified network. */
    listOperations: handleUnaryCall<ListNetworkOperationsRequest, ListNetworkOperationsResponse>;
    /** Move network to another folder. */
    move: handleUnaryCall<MoveNetworkRequest, Operation>;
}
export interface NetworkServiceClient extends Client {
    /**
     * Returns the specified Network resource.
     *
     * Get the list of available Network resources by making a [List] request.
     */
    get(request: GetNetworkRequest, callback: (error: ServiceError | null, response: Network) => void): ClientUnaryCall;
    get(request: GetNetworkRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Network) => void): ClientUnaryCall;
    get(request: GetNetworkRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Network) => void): ClientUnaryCall;
    /** Retrieves the list of Network resources in the specified folder. */
    list(request: ListNetworksRequest, callback: (error: ServiceError | null, response: ListNetworksResponse) => void): ClientUnaryCall;
    list(request: ListNetworksRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListNetworksResponse) => void): ClientUnaryCall;
    list(request: ListNetworksRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListNetworksResponse) => void): ClientUnaryCall;
    /**
     * Creates a network 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: CreateNetworkRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateNetworkRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateNetworkRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /**
     * Updates the specified network.
     * Method starts an asynchronous operation that can be cancelled while it is in progress.
     */
    update(request: UpdateNetworkRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateNetworkRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateNetworkRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Deletes the specified network. */
    delete(request: DeleteNetworkRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteNetworkRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteNetworkRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Lists subnets from the specified network. */
    listSubnets(request: ListNetworkSubnetsRequest, callback: (error: ServiceError | null, response: ListNetworkSubnetsResponse) => void): ClientUnaryCall;
    listSubnets(request: ListNetworkSubnetsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListNetworkSubnetsResponse) => void): ClientUnaryCall;
    listSubnets(request: ListNetworkSubnetsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListNetworkSubnetsResponse) => void): ClientUnaryCall;
    /** Lists security groups from the specified network. */
    listSecurityGroups(request: ListNetworkSecurityGroupsRequest, callback: (error: ServiceError | null, response: ListNetworkSecurityGroupsResponse) => void): ClientUnaryCall;
    listSecurityGroups(request: ListNetworkSecurityGroupsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListNetworkSecurityGroupsResponse) => void): ClientUnaryCall;
    listSecurityGroups(request: ListNetworkSecurityGroupsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListNetworkSecurityGroupsResponse) => void): ClientUnaryCall;
    /** Lists route tables from the specified network. */
    listRouteTables(request: ListNetworkRouteTablesRequest, callback: (error: ServiceError | null, response: ListNetworkRouteTablesResponse) => void): ClientUnaryCall;
    listRouteTables(request: ListNetworkRouteTablesRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListNetworkRouteTablesResponse) => void): ClientUnaryCall;
    listRouteTables(request: ListNetworkRouteTablesRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListNetworkRouteTablesResponse) => void): ClientUnaryCall;
    /** Lists operations for the specified network. */
    listOperations(request: ListNetworkOperationsRequest, callback: (error: ServiceError | null, response: ListNetworkOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListNetworkOperationsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListNetworkOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListNetworkOperationsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListNetworkOperationsResponse) => void): ClientUnaryCall;
    /** Move network to another folder. */
    move(request: MoveNetworkRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    move(request: MoveNetworkRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    move(request: MoveNetworkRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
}
export declare const NetworkServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): NetworkServiceClient;
    service: typeof NetworkServiceService;
};
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 {};
