/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { ApiEndpoint } from '../../../yandex/cloud/endpoint/api_endpoint';
export declare const protobufPackage = "yandex.cloud.endpoint";
export interface GetApiEndpointRequest {
    apiEndpointId: string;
}
export interface ListApiEndpointsRequest {
    /** @deprecated */
    pageSize: number;
    /** @deprecated */
    pageToken: string;
}
export interface ListApiEndpointsResponse {
    endpoints: ApiEndpoint[];
    nextPageToken: string;
}
export declare const GetApiEndpointRequest: {
    encode(message: GetApiEndpointRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetApiEndpointRequest;
    fromJSON(object: any): GetApiEndpointRequest;
    toJSON(message: GetApiEndpointRequest): unknown;
    fromPartial<I extends {
        apiEndpointId?: string | undefined;
    } & {
        apiEndpointId?: string | undefined;
    } & Record<Exclude<keyof I, "apiEndpointId">, never>>(object: I): GetApiEndpointRequest;
};
export declare const ListApiEndpointsRequest: {
    encode(message: ListApiEndpointsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListApiEndpointsRequest;
    fromJSON(object: any): ListApiEndpointsRequest;
    toJSON(message: ListApiEndpointsRequest): unknown;
    fromPartial<I extends {
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListApiEndpointsRequest>, never>>(object: I): ListApiEndpointsRequest;
};
export declare const ListApiEndpointsResponse: {
    encode(message: ListApiEndpointsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListApiEndpointsResponse;
    fromJSON(object: any): ListApiEndpointsResponse;
    toJSON(message: ListApiEndpointsResponse): unknown;
    fromPartial<I extends {
        endpoints?: {
            id?: string | undefined;
            address?: string | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        endpoints?: ({
            id?: string | undefined;
            address?: string | undefined;
        }[] & ({
            id?: string | undefined;
            address?: string | undefined;
        } & {
            id?: string | undefined;
            address?: string | undefined;
        } & Record<Exclude<keyof I["endpoints"][number], keyof ApiEndpoint>, never>)[] & Record<Exclude<keyof I["endpoints"], keyof {
            id?: string | undefined;
            address?: string | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListApiEndpointsResponse>, never>>(object: I): ListApiEndpointsResponse;
};
export declare const ApiEndpointServiceService: {
    readonly get: {
        readonly path: "/yandex.cloud.endpoint.ApiEndpointService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetApiEndpointRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetApiEndpointRequest;
        readonly responseSerialize: (value: ApiEndpoint) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ApiEndpoint;
    };
    readonly list: {
        readonly path: "/yandex.cloud.endpoint.ApiEndpointService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListApiEndpointsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListApiEndpointsRequest;
        readonly responseSerialize: (value: ListApiEndpointsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListApiEndpointsResponse;
    };
};
export interface ApiEndpointServiceServer extends UntypedServiceImplementation {
    get: handleUnaryCall<GetApiEndpointRequest, ApiEndpoint>;
    list: handleUnaryCall<ListApiEndpointsRequest, ListApiEndpointsResponse>;
}
export interface ApiEndpointServiceClient extends Client {
    get(request: GetApiEndpointRequest, callback: (error: ServiceError | null, response: ApiEndpoint) => void): ClientUnaryCall;
    get(request: GetApiEndpointRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ApiEndpoint) => void): ClientUnaryCall;
    get(request: GetApiEndpointRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ApiEndpoint) => void): ClientUnaryCall;
    list(request: ListApiEndpointsRequest, callback: (error: ServiceError | null, response: ListApiEndpointsResponse) => void): ClientUnaryCall;
    list(request: ListApiEndpointsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListApiEndpointsResponse) => void): ClientUnaryCall;
    list(request: ListApiEndpointsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListApiEndpointsResponse) => void): ClientUnaryCall;
}
export declare const ApiEndpointServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): ApiEndpointServiceClient;
    service: typeof ApiEndpointServiceService;
};
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 {};
