/// <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 { Stream } from '../../../../yandex/cloud/video/v1/stream';
import { Operation } from '../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.video.v1";
export interface GetStreamRequest {
    /** ID of the stream. */
    streamId: string;
}
export interface ListStreamsRequest {
    /** 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", "startTime", "finishTime", "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", "lineId", "status"].
     * Both snake_case and camelCase are supported for fields.
     */
    filter: string;
}
export interface ListStreamsResponse {
    /** List of streams for channel. */
    streams: Stream[];
    /** Token for getting the next page. */
    nextPageToken: string;
}
export interface BatchGetStreamsRequest {
    /** ID of the channel. */
    channelId: string;
    /** List of requested stream IDs. */
    streamIds: string[];
}
export interface BatchGetStreamsResponse {
    /** List of streams for specific channel. */
    streams: Stream[];
}
export interface CreateStreamRequest {
    /** ID of the channel. */
    channelId: string;
    /** ID of the line. */
    lineId: string;
    /** Stream title. */
    title: string;
    /** Stream description. */
    description: string;
    /** ID of the thumbnail. */
    thumbnailId: string;
    /**
     * Automatically publish stream when ready.
     * Switches status from READY to ONAIR.
     */
    autoPublish?: boolean;
    /** Custom labels as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** On-demand stream. Starts immediately when a signal appears. */
    onDemand?: OnDemandParams | undefined;
    /** Schedule stream. Starts or finishes at the specified time. */
    schedule?: ScheduleParams | undefined;
}
export interface CreateStreamRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface OnDemandParams {
}
export interface ScheduleParams {
    startTime?: Date;
    finishTime?: Date;
}
export interface CreateStreamMetadata {
    /** ID of the stream. */
    streamId: string;
}
export interface UpdateStreamRequest {
    /** ID of the stream. */
    streamId: string;
    /** Field mask that specifies which fields of the stream are going to be updated. */
    fieldMask?: FieldMask;
    /** ID of the line. */
    lineId: string;
    /** Stream title. */
    title: string;
    /** Stream description. */
    description: string;
    /** ID of the thumbnail. */
    thumbnailId: string;
    /**
     * Automatically publish stream when ready.
     * Switches status from READY to ONAIR.
     */
    autoPublish?: boolean;
    /** Custom labels as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** On demand stream. It starts immediately when a signal appears. */
    onDemand?: OnDemandParams | undefined;
    /** Schedule stream. Determines when to start receiving the signal or finish time. */
    schedule?: ScheduleParams | undefined;
}
export interface UpdateStreamRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateStreamMetadata {
    /** ID of the stream. */
    streamId: string;
}
export interface DeleteStreamRequest {
    /** ID of the stream. */
    streamId: string;
}
export interface DeleteStreamMetadata {
    /** ID of the stream. */
    streamId: string;
}
export interface BatchDeleteStreamsRequest {
    /** ID of the channel. */
    channelId: string;
    /** List of stream IDs. */
    streamIds: string[];
}
export interface BatchDeleteStreamsMetadata {
    /** List of stream IDs. */
    streamIds: string[];
}
export interface PerformStreamActionRequest {
    /** ID of the stream. */
    streamId: string;
    publish?: PublishAction | undefined;
    stop?: StopAction | undefined;
}
export interface PublishAction {
}
export interface StopAction {
}
export interface PerformStreamActionMetadata {
    /** ID of the stream. */
    streamId: string;
}
export declare const GetStreamRequest: {
    encode(message: GetStreamRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStreamRequest;
    fromJSON(object: any): GetStreamRequest;
    toJSON(message: GetStreamRequest): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): GetStreamRequest;
};
export declare const ListStreamsRequest: {
    encode(message: ListStreamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListStreamsRequest;
    fromJSON(object: any): ListStreamsRequest;
    toJSON(message: ListStreamsRequest): 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 ListStreamsRequest>, never>>(object: I): ListStreamsRequest;
};
export declare const ListStreamsResponse: {
    encode(message: ListStreamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListStreamsResponse;
    fromJSON(object: any): ListStreamsResponse;
    toJSON(message: ListStreamsResponse): unknown;
    fromPartial<I extends {
        streams?: {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        streams?: ({
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: ({} & {} & Record<Exclude<keyof I["streams"][number]["onDemand"], never>, never>) | undefined;
            schedule?: ({
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } & {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } & Record<Exclude<keyof I["streams"][number]["schedule"], keyof import("../../../../yandex/cloud/video/v1/stream").Schedule>, never>) | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["streams"][number]["labels"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["streams"][number], keyof Stream>, never>)[] & Record<Exclude<keyof I["streams"], keyof {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListStreamsResponse>, never>>(object: I): ListStreamsResponse;
};
export declare const BatchGetStreamsRequest: {
    encode(message: BatchGetStreamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchGetStreamsRequest;
    fromJSON(object: any): BatchGetStreamsRequest;
    toJSON(message: BatchGetStreamsRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        streamIds?: string[] | undefined;
    } & {
        channelId?: string | undefined;
        streamIds?: (string[] & string[] & Record<Exclude<keyof I["streamIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof BatchGetStreamsRequest>, never>>(object: I): BatchGetStreamsRequest;
};
export declare const BatchGetStreamsResponse: {
    encode(message: BatchGetStreamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchGetStreamsResponse;
    fromJSON(object: any): BatchGetStreamsResponse;
    toJSON(message: BatchGetStreamsResponse): unknown;
    fromPartial<I extends {
        streams?: {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        streams?: ({
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: ({} & {} & Record<Exclude<keyof I["streams"][number]["onDemand"], never>, never>) | undefined;
            schedule?: ({
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } & {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } & Record<Exclude<keyof I["streams"][number]["schedule"], keyof import("../../../../yandex/cloud/video/v1/stream").Schedule>, never>) | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["streams"][number]["labels"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["streams"][number], keyof Stream>, never>)[] & Record<Exclude<keyof I["streams"], keyof {
            id?: string | undefined;
            channelId?: string | undefined;
            lineId?: string | undefined;
            title?: string | undefined;
            description?: string | undefined;
            thumbnailId?: string | undefined;
            status?: import("../../../../yandex/cloud/video/v1/stream").Stream_StreamStatus | undefined;
            startTime?: Date | undefined;
            publishTime?: Date | undefined;
            finishTime?: Date | undefined;
            autoPublish?: boolean | undefined;
            onDemand?: {} | undefined;
            schedule?: {
                startTime?: Date | undefined;
                finishTime?: Date | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "streams">, never>>(object: I): BatchGetStreamsResponse;
};
export declare const CreateStreamRequest: {
    encode(message: CreateStreamRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamRequest;
    fromJSON(object: any): CreateStreamRequest;
    toJSON(message: CreateStreamRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        lineId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        thumbnailId?: string | undefined;
        autoPublish?: boolean | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        onDemand?: {} | undefined;
        schedule?: {
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } | undefined;
    } & {
        channelId?: string | undefined;
        lineId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        thumbnailId?: string | undefined;
        autoPublish?: boolean | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        onDemand?: ({} & {} & Record<Exclude<keyof I["onDemand"], never>, never>) | undefined;
        schedule?: ({
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } & {
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } & Record<Exclude<keyof I["schedule"], keyof ScheduleParams>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateStreamRequest>, never>>(object: I): CreateStreamRequest;
};
export declare const CreateStreamRequest_LabelsEntry: {
    encode(message: CreateStreamRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamRequest_LabelsEntry;
    fromJSON(object: any): CreateStreamRequest_LabelsEntry;
    toJSON(message: CreateStreamRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateStreamRequest_LabelsEntry>, never>>(object: I): CreateStreamRequest_LabelsEntry;
};
export declare const OnDemandParams: {
    encode(_: OnDemandParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OnDemandParams;
    fromJSON(_: any): OnDemandParams;
    toJSON(_: OnDemandParams): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): OnDemandParams;
};
export declare const ScheduleParams: {
    encode(message: ScheduleParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ScheduleParams;
    fromJSON(object: any): ScheduleParams;
    toJSON(message: ScheduleParams): unknown;
    fromPartial<I extends {
        startTime?: Date | undefined;
        finishTime?: Date | undefined;
    } & {
        startTime?: Date | undefined;
        finishTime?: Date | undefined;
    } & Record<Exclude<keyof I, keyof ScheduleParams>, never>>(object: I): ScheduleParams;
};
export declare const CreateStreamMetadata: {
    encode(message: CreateStreamMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamMetadata;
    fromJSON(object: any): CreateStreamMetadata;
    toJSON(message: CreateStreamMetadata): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): CreateStreamMetadata;
};
export declare const UpdateStreamRequest: {
    encode(message: UpdateStreamRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamRequest;
    fromJSON(object: any): UpdateStreamRequest;
    toJSON(message: UpdateStreamRequest): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
        fieldMask?: {
            paths?: string[] | undefined;
        } | undefined;
        lineId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        thumbnailId?: string | undefined;
        autoPublish?: boolean | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        onDemand?: {} | undefined;
        schedule?: {
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } | undefined;
    } & {
        streamId?: 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;
        lineId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        thumbnailId?: string | undefined;
        autoPublish?: boolean | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        onDemand?: ({} & {} & Record<Exclude<keyof I["onDemand"], never>, never>) | undefined;
        schedule?: ({
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } & {
            startTime?: Date | undefined;
            finishTime?: Date | undefined;
        } & Record<Exclude<keyof I["schedule"], keyof ScheduleParams>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateStreamRequest>, never>>(object: I): UpdateStreamRequest;
};
export declare const UpdateStreamRequest_LabelsEntry: {
    encode(message: UpdateStreamRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamRequest_LabelsEntry;
    fromJSON(object: any): UpdateStreamRequest_LabelsEntry;
    toJSON(message: UpdateStreamRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateStreamRequest_LabelsEntry>, never>>(object: I): UpdateStreamRequest_LabelsEntry;
};
export declare const UpdateStreamMetadata: {
    encode(message: UpdateStreamMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamMetadata;
    fromJSON(object: any): UpdateStreamMetadata;
    toJSON(message: UpdateStreamMetadata): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): UpdateStreamMetadata;
};
export declare const DeleteStreamRequest: {
    encode(message: DeleteStreamRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteStreamRequest;
    fromJSON(object: any): DeleteStreamRequest;
    toJSON(message: DeleteStreamRequest): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): DeleteStreamRequest;
};
export declare const DeleteStreamMetadata: {
    encode(message: DeleteStreamMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteStreamMetadata;
    fromJSON(object: any): DeleteStreamMetadata;
    toJSON(message: DeleteStreamMetadata): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): DeleteStreamMetadata;
};
export declare const BatchDeleteStreamsRequest: {
    encode(message: BatchDeleteStreamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeleteStreamsRequest;
    fromJSON(object: any): BatchDeleteStreamsRequest;
    toJSON(message: BatchDeleteStreamsRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        streamIds?: string[] | undefined;
    } & {
        channelId?: string | undefined;
        streamIds?: (string[] & string[] & Record<Exclude<keyof I["streamIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof BatchDeleteStreamsRequest>, never>>(object: I): BatchDeleteStreamsRequest;
};
export declare const BatchDeleteStreamsMetadata: {
    encode(message: BatchDeleteStreamsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeleteStreamsMetadata;
    fromJSON(object: any): BatchDeleteStreamsMetadata;
    toJSON(message: BatchDeleteStreamsMetadata): unknown;
    fromPartial<I extends {
        streamIds?: string[] | undefined;
    } & {
        streamIds?: (string[] & string[] & Record<Exclude<keyof I["streamIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "streamIds">, never>>(object: I): BatchDeleteStreamsMetadata;
};
export declare const PerformStreamActionRequest: {
    encode(message: PerformStreamActionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformStreamActionRequest;
    fromJSON(object: any): PerformStreamActionRequest;
    toJSON(message: PerformStreamActionRequest): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
        publish?: {} | undefined;
        stop?: {} | undefined;
    } & {
        streamId?: string | undefined;
        publish?: ({} & {} & Record<Exclude<keyof I["publish"], never>, never>) | undefined;
        stop?: ({} & {} & Record<Exclude<keyof I["stop"], never>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof PerformStreamActionRequest>, never>>(object: I): PerformStreamActionRequest;
};
export declare const PublishAction: {
    encode(_: PublishAction, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PublishAction;
    fromJSON(_: any): PublishAction;
    toJSON(_: PublishAction): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): PublishAction;
};
export declare const StopAction: {
    encode(_: StopAction, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): StopAction;
    fromJSON(_: any): StopAction;
    toJSON(_: StopAction): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): StopAction;
};
export declare const PerformStreamActionMetadata: {
    encode(message: PerformStreamActionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformStreamActionMetadata;
    fromJSON(object: any): PerformStreamActionMetadata;
    toJSON(message: PerformStreamActionMetadata): unknown;
    fromPartial<I extends {
        streamId?: string | undefined;
    } & {
        streamId?: string | undefined;
    } & Record<Exclude<keyof I, "streamId">, never>>(object: I): PerformStreamActionMetadata;
};
/** Stream management service. */
export declare const StreamServiceService: {
    /** Get the specific stream. */
    readonly get: {
        readonly path: "/yandex.cloud.video.v1.StreamService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetStreamRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetStreamRequest;
        readonly responseSerialize: (value: Stream) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Stream;
    };
    /** List streams for channel. */
    readonly list: {
        readonly path: "/yandex.cloud.video.v1.StreamService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListStreamsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListStreamsRequest;
        readonly responseSerialize: (value: ListStreamsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListStreamsResponse;
    };
    /** Batch get streams for channel. */
    readonly batchGet: {
        readonly path: "/yandex.cloud.video.v1.StreamService/BatchGet";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: BatchGetStreamsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => BatchGetStreamsRequest;
        readonly responseSerialize: (value: BatchGetStreamsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => BatchGetStreamsResponse;
    };
    /** Create stream. */
    readonly create: {
        readonly path: "/yandex.cloud.video.v1.StreamService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateStreamRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateStreamRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Update stream. */
    readonly update: {
        readonly path: "/yandex.cloud.video.v1.StreamService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateStreamRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateStreamRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Delete stream. */
    readonly delete: {
        readonly path: "/yandex.cloud.video.v1.StreamService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteStreamRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteStreamRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Batch delete streams. */
    readonly batchDelete: {
        readonly path: "/yandex.cloud.video.v1.StreamService/BatchDelete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: BatchDeleteStreamsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => BatchDeleteStreamsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Perform an action on the stream. */
    readonly performAction: {
        readonly path: "/yandex.cloud.video.v1.StreamService/PerformAction";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: PerformStreamActionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => PerformStreamActionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
};
export interface StreamServiceServer extends UntypedServiceImplementation {
    /** Get the specific stream. */
    get: handleUnaryCall<GetStreamRequest, Stream>;
    /** List streams for channel. */
    list: handleUnaryCall<ListStreamsRequest, ListStreamsResponse>;
    /** Batch get streams for channel. */
    batchGet: handleUnaryCall<BatchGetStreamsRequest, BatchGetStreamsResponse>;
    /** Create stream. */
    create: handleUnaryCall<CreateStreamRequest, Operation>;
    /** Update stream. */
    update: handleUnaryCall<UpdateStreamRequest, Operation>;
    /** Delete stream. */
    delete: handleUnaryCall<DeleteStreamRequest, Operation>;
    /** Batch delete streams. */
    batchDelete: handleUnaryCall<BatchDeleteStreamsRequest, Operation>;
    /** Perform an action on the stream. */
    performAction: handleUnaryCall<PerformStreamActionRequest, Operation>;
}
export interface StreamServiceClient extends Client {
    /** Get the specific stream. */
    get(request: GetStreamRequest, callback: (error: ServiceError | null, response: Stream) => void): ClientUnaryCall;
    get(request: GetStreamRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Stream) => void): ClientUnaryCall;
    get(request: GetStreamRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Stream) => void): ClientUnaryCall;
    /** List streams for channel. */
    list(request: ListStreamsRequest, callback: (error: ServiceError | null, response: ListStreamsResponse) => void): ClientUnaryCall;
    list(request: ListStreamsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListStreamsResponse) => void): ClientUnaryCall;
    list(request: ListStreamsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListStreamsResponse) => void): ClientUnaryCall;
    /** Batch get streams for channel. */
    batchGet(request: BatchGetStreamsRequest, callback: (error: ServiceError | null, response: BatchGetStreamsResponse) => void): ClientUnaryCall;
    batchGet(request: BatchGetStreamsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: BatchGetStreamsResponse) => void): ClientUnaryCall;
    batchGet(request: BatchGetStreamsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: BatchGetStreamsResponse) => void): ClientUnaryCall;
    /** Create stream. */
    create(request: CreateStreamRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateStreamRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateStreamRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Update stream. */
    update(request: UpdateStreamRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateStreamRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateStreamRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Delete stream. */
    delete(request: DeleteStreamRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteStreamRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteStreamRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Batch delete streams. */
    batchDelete(request: BatchDeleteStreamsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeleteStreamsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeleteStreamsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Perform an action on the stream. */
    performAction(request: PerformStreamActionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    performAction(request: PerformStreamActionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    performAction(request: PerformStreamActionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
}
export declare const StreamServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): StreamServiceClient;
    service: typeof StreamServiceService;
};
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 {};
