/// <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 { Playlist, PlaylistItem } from '../../../../yandex/cloud/video/v1/playlist';
import { Operation } from '../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.video.v1";
export interface GetPlaylistRequest {
    /** ID of the playlist. */
    playlistId: string;
}
export interface ListPlaylistsRequest {
    /** ID of the channel. */
    channelId: string;
    /**
     * The maximum number of the results per page to return.
     * Default value: 100.
     */
    pageSize: number;
    /** Page token for getting the next page of the result. */
    pageToken: string;
    /**
     * By which column the listing should be ordered and in which direction,
     * format is "<field> <order>" (e.g. "createdAt desc").
     * Default: "id asc".
     * Possible fields: ["id", "title", "createdAt", "updatedAt"].
     * Both snake_case and camelCase are supported for fields.
     */
    orderBy: string;
    /**
     * Filter expression that filters resources listed in the response.
     * Expressions are composed of terms connected by logic operators.
     * If value contains spaces or quotes,
     * it should be in quotes (`'` or `"`) with the inner quotes being backslash escaped.
     * Example: "key1='value' AND key2='value'".
     * Supported operators: ["AND", "OR"].
     * Supported fields: ["id", "title"].
     * Both snake_case and camelCase are supported for fields.
     */
    filter: string;
}
export interface ListPlaylistsResponse {
    /** List of playlists for specific channel. */
    playlists: Playlist[];
    /** Token for getting the next page. */
    nextPageToken: string;
}
export interface CreatePlaylistRequest {
    /** ID of the channel. */
    channelId: string;
    /** Playlist title. */
    title: string;
    /** Playlist description. */
    description: string;
    /** List of playlist items. */
    items: PlaylistItem[];
}
export interface CreatePlaylistMetadata {
    /** ID of the playlist. */
    playlistId: string;
}
export interface UpdatePlaylistRequest {
    /** ID of the playlist. */
    playlistId: string;
    /** Field mask that specifies which fields of the playlist are going to be updated. */
    fieldMask?: FieldMask;
    /** Playlist title. */
    title: string;
    /** Playlist description. */
    description: string;
    /** List of playlist items. */
    items: PlaylistItem[];
}
export interface UpdatePlaylistMetadata {
    /** ID of the playlist. */
    playlistId: string;
}
export interface DeletePlaylistRequest {
    /** ID of the playlist. */
    playlistId: string;
}
export interface DeletePlaylistMetadata {
    /** ID of the playlist. */
    playlistId: string;
}
export interface BatchDeletePlaylistsRequest {
    /** ID of the channel. */
    channelId: string;
    /** List of playlist IDs. */
    playlistIds: string[];
}
export interface BatchDeletePlaylistsMetadata {
    /** List of playlist IDs. */
    playlistIds: string[];
}
export interface GetPlaylistPlayerURLRequest {
    /** ID of the playlist. */
    playlistId: string;
    params?: PlaylistPlayerParams;
}
export interface PlaylistPlayerParams {
    /** If true, a player will be muted by default. */
    mute: boolean;
    /** If true, playback will start automatically. */
    autoplay: boolean;
    /** If true, a player interface will be hidden by default. */
    hidden: boolean;
}
export interface GetPlaylistPlayerURLResponse {
    /** Direct link to the playlist. */
    playerUrl: string;
    /** HTML embed code in Iframe format. */
    html: string;
}
export declare const GetPlaylistRequest: {
    encode(message: GetPlaylistRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetPlaylistRequest;
    fromJSON(object: any): GetPlaylistRequest;
    toJSON(message: GetPlaylistRequest): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
    } & {
        playlistId?: string | undefined;
    } & Record<Exclude<keyof I, "playlistId">, never>>(object: I): GetPlaylistRequest;
};
export declare const ListPlaylistsRequest: {
    encode(message: ListPlaylistsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListPlaylistsRequest;
    fromJSON(object: any): ListPlaylistsRequest;
    toJSON(message: ListPlaylistsRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        orderBy?: string | undefined;
        filter?: string | undefined;
    } & {
        channelId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        orderBy?: string | undefined;
        filter?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListPlaylistsRequest>, never>>(object: I): ListPlaylistsRequest;
};
export declare const ListPlaylistsResponse: {
    encode(message: ListPlaylistsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListPlaylistsResponse;
    fromJSON(object: any): ListPlaylistsResponse;
    toJSON(message: ListPlaylistsResponse): unknown;
    fromPartial<I extends {
        playlists?: {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            items?: {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[] | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        playlists?: ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            items?: {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[] | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
        }[] & ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            items?: {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[] | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
        } & {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            items?: ({
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[] & ({
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            } & {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            } & Record<Exclude<keyof I["playlists"][number]["items"][number], keyof PlaylistItem>, never>)[] & Record<Exclude<keyof I["playlists"][number]["items"], keyof {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[]>, never>) | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
        } & Record<Exclude<keyof I["playlists"][number], keyof Playlist>, never>)[] & Record<Exclude<keyof I["playlists"], keyof {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            items?: {
                videoId?: string | undefined;
                episodeId?: string | undefined;
                position?: number | undefined;
            }[] | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListPlaylistsResponse>, never>>(object: I): ListPlaylistsResponse;
};
export declare const CreatePlaylistRequest: {
    encode(message: CreatePlaylistRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreatePlaylistRequest;
    fromJSON(object: any): CreatePlaylistRequest;
    toJSON(message: CreatePlaylistRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        items?: {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[] | undefined;
    } & {
        channelId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        items?: ({
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[] & ({
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        } & {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        } & Record<Exclude<keyof I["items"][number], keyof PlaylistItem>, never>)[] & Record<Exclude<keyof I["items"], keyof {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreatePlaylistRequest>, never>>(object: I): CreatePlaylistRequest;
};
export declare const CreatePlaylistMetadata: {
    encode(message: CreatePlaylistMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreatePlaylistMetadata;
    fromJSON(object: any): CreatePlaylistMetadata;
    toJSON(message: CreatePlaylistMetadata): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
    } & {
        playlistId?: string | undefined;
    } & Record<Exclude<keyof I, "playlistId">, never>>(object: I): CreatePlaylistMetadata;
};
export declare const UpdatePlaylistRequest: {
    encode(message: UpdatePlaylistRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePlaylistRequest;
    fromJSON(object: any): UpdatePlaylistRequest;
    toJSON(message: UpdatePlaylistRequest): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
        fieldMask?: {
            paths?: string[] | undefined;
        } | undefined;
        title?: string | undefined;
        description?: string | undefined;
        items?: {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[] | undefined;
    } & {
        playlistId?: string | undefined;
        fieldMask?: ({
            paths?: string[] | undefined;
        } & {
            paths?: (string[] & string[] & Record<Exclude<keyof I["fieldMask"]["paths"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["fieldMask"], "paths">, never>) | undefined;
        title?: string | undefined;
        description?: string | undefined;
        items?: ({
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[] & ({
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        } & {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        } & Record<Exclude<keyof I["items"][number], keyof PlaylistItem>, never>)[] & Record<Exclude<keyof I["items"], keyof {
            videoId?: string | undefined;
            episodeId?: string | undefined;
            position?: number | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdatePlaylistRequest>, never>>(object: I): UpdatePlaylistRequest;
};
export declare const UpdatePlaylistMetadata: {
    encode(message: UpdatePlaylistMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdatePlaylistMetadata;
    fromJSON(object: any): UpdatePlaylistMetadata;
    toJSON(message: UpdatePlaylistMetadata): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
    } & {
        playlistId?: string | undefined;
    } & Record<Exclude<keyof I, "playlistId">, never>>(object: I): UpdatePlaylistMetadata;
};
export declare const DeletePlaylistRequest: {
    encode(message: DeletePlaylistRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeletePlaylistRequest;
    fromJSON(object: any): DeletePlaylistRequest;
    toJSON(message: DeletePlaylistRequest): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
    } & {
        playlistId?: string | undefined;
    } & Record<Exclude<keyof I, "playlistId">, never>>(object: I): DeletePlaylistRequest;
};
export declare const DeletePlaylistMetadata: {
    encode(message: DeletePlaylistMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeletePlaylistMetadata;
    fromJSON(object: any): DeletePlaylistMetadata;
    toJSON(message: DeletePlaylistMetadata): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
    } & {
        playlistId?: string | undefined;
    } & Record<Exclude<keyof I, "playlistId">, never>>(object: I): DeletePlaylistMetadata;
};
export declare const BatchDeletePlaylistsRequest: {
    encode(message: BatchDeletePlaylistsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeletePlaylistsRequest;
    fromJSON(object: any): BatchDeletePlaylistsRequest;
    toJSON(message: BatchDeletePlaylistsRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        playlistIds?: string[] | undefined;
    } & {
        channelId?: string | undefined;
        playlistIds?: (string[] & string[] & Record<Exclude<keyof I["playlistIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof BatchDeletePlaylistsRequest>, never>>(object: I): BatchDeletePlaylistsRequest;
};
export declare const BatchDeletePlaylistsMetadata: {
    encode(message: BatchDeletePlaylistsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeletePlaylistsMetadata;
    fromJSON(object: any): BatchDeletePlaylistsMetadata;
    toJSON(message: BatchDeletePlaylistsMetadata): unknown;
    fromPartial<I extends {
        playlistIds?: string[] | undefined;
    } & {
        playlistIds?: (string[] & string[] & Record<Exclude<keyof I["playlistIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "playlistIds">, never>>(object: I): BatchDeletePlaylistsMetadata;
};
export declare const GetPlaylistPlayerURLRequest: {
    encode(message: GetPlaylistPlayerURLRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetPlaylistPlayerURLRequest;
    fromJSON(object: any): GetPlaylistPlayerURLRequest;
    toJSON(message: GetPlaylistPlayerURLRequest): unknown;
    fromPartial<I extends {
        playlistId?: string | undefined;
        params?: {
            mute?: boolean | undefined;
            autoplay?: boolean | undefined;
            hidden?: boolean | undefined;
        } | undefined;
    } & {
        playlistId?: string | undefined;
        params?: ({
            mute?: boolean | undefined;
            autoplay?: boolean | undefined;
            hidden?: boolean | undefined;
        } & {
            mute?: boolean | undefined;
            autoplay?: boolean | undefined;
            hidden?: boolean | undefined;
        } & Record<Exclude<keyof I["params"], keyof PlaylistPlayerParams>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof GetPlaylistPlayerURLRequest>, never>>(object: I): GetPlaylistPlayerURLRequest;
};
export declare const PlaylistPlayerParams: {
    encode(message: PlaylistPlayerParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlaylistPlayerParams;
    fromJSON(object: any): PlaylistPlayerParams;
    toJSON(message: PlaylistPlayerParams): unknown;
    fromPartial<I extends {
        mute?: boolean | undefined;
        autoplay?: boolean | undefined;
        hidden?: boolean | undefined;
    } & {
        mute?: boolean | undefined;
        autoplay?: boolean | undefined;
        hidden?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof PlaylistPlayerParams>, never>>(object: I): PlaylistPlayerParams;
};
export declare const GetPlaylistPlayerURLResponse: {
    encode(message: GetPlaylistPlayerURLResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetPlaylistPlayerURLResponse;
    fromJSON(object: any): GetPlaylistPlayerURLResponse;
    toJSON(message: GetPlaylistPlayerURLResponse): unknown;
    fromPartial<I extends {
        playerUrl?: string | undefined;
        html?: string | undefined;
    } & {
        playerUrl?: string | undefined;
        html?: string | undefined;
    } & Record<Exclude<keyof I, keyof GetPlaylistPlayerURLResponse>, never>>(object: I): GetPlaylistPlayerURLResponse;
};
/** Playlist management service. */
export declare const PlaylistServiceService: {
    /** Get the specific playlist. */
    readonly get: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetPlaylistRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetPlaylistRequest;
        readonly responseSerialize: (value: Playlist) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Playlist;
    };
    /** List playlists for a channel. */
    readonly list: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListPlaylistsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListPlaylistsRequest;
        readonly responseSerialize: (value: ListPlaylistsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListPlaylistsResponse;
    };
    /** Create playlist. */
    readonly create: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreatePlaylistRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreatePlaylistRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Update playlist. */
    readonly update: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdatePlaylistRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdatePlaylistRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Delete playlist. */
    readonly delete: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeletePlaylistRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeletePlaylistRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Batch delete playlists. */
    readonly batchDelete: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/BatchDelete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: BatchDeletePlaylistsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => BatchDeletePlaylistsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Get player url. */
    readonly getPlayerURL: {
        readonly path: "/yandex.cloud.video.v1.PlaylistService/GetPlayerURL";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetPlaylistPlayerURLRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetPlaylistPlayerURLRequest;
        readonly responseSerialize: (value: GetPlaylistPlayerURLResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => GetPlaylistPlayerURLResponse;
    };
};
export interface PlaylistServiceServer extends UntypedServiceImplementation {
    /** Get the specific playlist. */
    get: handleUnaryCall<GetPlaylistRequest, Playlist>;
    /** List playlists for a channel. */
    list: handleUnaryCall<ListPlaylistsRequest, ListPlaylistsResponse>;
    /** Create playlist. */
    create: handleUnaryCall<CreatePlaylistRequest, Operation>;
    /** Update playlist. */
    update: handleUnaryCall<UpdatePlaylistRequest, Operation>;
    /** Delete playlist. */
    delete: handleUnaryCall<DeletePlaylistRequest, Operation>;
    /** Batch delete playlists. */
    batchDelete: handleUnaryCall<BatchDeletePlaylistsRequest, Operation>;
    /** Get player url. */
    getPlayerURL: handleUnaryCall<GetPlaylistPlayerURLRequest, GetPlaylistPlayerURLResponse>;
}
export interface PlaylistServiceClient extends Client {
    /** Get the specific playlist. */
    get(request: GetPlaylistRequest, callback: (error: ServiceError | null, response: Playlist) => void): ClientUnaryCall;
    get(request: GetPlaylistRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Playlist) => void): ClientUnaryCall;
    get(request: GetPlaylistRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Playlist) => void): ClientUnaryCall;
    /** List playlists for a channel. */
    list(request: ListPlaylistsRequest, callback: (error: ServiceError | null, response: ListPlaylistsResponse) => void): ClientUnaryCall;
    list(request: ListPlaylistsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListPlaylistsResponse) => void): ClientUnaryCall;
    list(request: ListPlaylistsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListPlaylistsResponse) => void): ClientUnaryCall;
    /** Create playlist. */
    create(request: CreatePlaylistRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreatePlaylistRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreatePlaylistRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Update playlist. */
    update(request: UpdatePlaylistRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdatePlaylistRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdatePlaylistRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Delete playlist. */
    delete(request: DeletePlaylistRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeletePlaylistRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeletePlaylistRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Batch delete playlists. */
    batchDelete(request: BatchDeletePlaylistsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeletePlaylistsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeletePlaylistsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Get player url. */
    getPlayerURL(request: GetPlaylistPlayerURLRequest, callback: (error: ServiceError | null, response: GetPlaylistPlayerURLResponse) => void): ClientUnaryCall;
    getPlayerURL(request: GetPlaylistPlayerURLRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetPlaylistPlayerURLResponse) => void): ClientUnaryCall;
    getPlayerURL(request: GetPlaylistPlayerURLRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetPlaylistPlayerURLResponse) => void): ClientUnaryCall;
}
export declare const PlaylistServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): PlaylistServiceClient;
    service: typeof PlaylistServiceService;
};
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 {};
