/// <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 { StreamLine, PushStreamKey } from '../../../../yandex/cloud/video/v1/stream_line';
import { Operation } from '../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.video.v1";
export interface GetStreamLineRequest {
    /** ID of the line. */
    streamLineId: string;
}
export interface ListStreamLinesRequest {
    /** 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 ListStreamLinesResponse {
    /** List of lines for channel. */
    streamLines: StreamLine[];
    /** Token for getting the next page. */
    nextPageToken: string;
}
export interface BatchGetStreamLinesRequest {
    /** ID of the channel. */
    channelId: string;
    /** List of requested stream line IDs. */
    streamLineIds: string[];
}
export interface BatchGetStreamLinesResponse {
    /** List of lines for specific channel. */
    streamLines: StreamLine[];
}
export interface CreateStreamLineRequest {
    /** ID of the channel. */
    channelId: string;
    /** Line title. */
    title: string;
    /** ID of the thumbnail. */
    thumbnailId: string;
    /** Custom labels as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** RTMP push input type. */
    rtmpPush?: RTMPPushParams | undefined;
    /** RTMP pull input type. */
    rtmpPull?: RTMPPullParams | undefined;
    /** Manual control of stream. */
    manualLine?: ManualLineParams | undefined;
    /** Automatic control of stream. */
    autoLine?: AutoLineParams | undefined;
}
export interface CreateStreamLineRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface CreateStreamLineMetadata {
    /** ID of the line. */
    streamLineId: string;
}
export interface UpdateStreamLineRequest {
    /** ID of the line. */
    streamLineId: string;
    /** Field mask that specifies which fields of the line are going to be updated. */
    fieldMask?: FieldMask;
    /** Line title. */
    title: string;
    /** ID of the thumbnail. */
    thumbnailId: string;
    /** Custom labels as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** RTMP push input type. */
    rtmpPush?: RTMPPushParams | undefined;
    /** RTMP pull input type. */
    rtmpPull?: RTMPPullParams | undefined;
}
export interface UpdateStreamLineRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateStreamLineMetadata {
    /** ID of the line. */
    streamLineId: string;
}
export interface DeleteStreamLineRequest {
    /** ID of the line. */
    streamLineId: string;
}
export interface DeleteStreamLineMetadata {
    /** ID of the line. */
    streamLineId: string;
}
export interface BatchDeleteStreamLinesRequest {
    /** ID of the channel. */
    channelId: string;
    /** List of line IDs. */
    streamLineIds: string[];
}
export interface BatchDeleteStreamLinesMetadata {
    /** List of line IDs. */
    streamLineIds: string[];
}
export interface PerformLineActionRequest {
    /** ID of the line. */
    streamLineId: string;
    activate?: ActivateAction | undefined;
    deactivate?: DeactivateAction | undefined;
}
export interface PerformLineActionMetadata {
    /** ID of the line. */
    streamLineId: string;
}
export interface RTMPPushParams {
}
export interface RTMPPullParams {
    /** URL of a RTMP streaming server. */
    url: string;
}
export interface ManualLineParams {
}
export interface AutoLineParams {
}
export interface ActivateAction {
}
export interface DeactivateAction {
}
export interface GetStreamKeyRequest {
    /** ID of the line. */
    streamLineId: string;
}
export interface UpdateStreamKeyRequest {
    /** ID of the line. */
    streamLineId: string;
}
export interface UpdateStreamKeyMetadata {
    /** ID of the line. */
    streamLineId: string;
}
export declare const GetStreamLineRequest: {
    encode(message: GetStreamLineRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStreamLineRequest;
    fromJSON(object: any): GetStreamLineRequest;
    toJSON(message: GetStreamLineRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): GetStreamLineRequest;
};
export declare const ListStreamLinesRequest: {
    encode(message: ListStreamLinesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListStreamLinesRequest;
    fromJSON(object: any): ListStreamLinesRequest;
    toJSON(message: ListStreamLinesRequest): 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 ListStreamLinesRequest>, never>>(object: I): ListStreamLinesRequest;
};
export declare const ListStreamLinesResponse: {
    encode(message: ListStreamLinesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListStreamLinesResponse;
    fromJSON(object: any): ListStreamLinesResponse;
    toJSON(message: ListStreamLinesResponse): unknown;
    fromPartial<I extends {
        streamLines?: {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        streamLines?: ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: ({
                url?: string | undefined;
            } & {
                url?: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["rtmpPush"], "url">, never>) | undefined;
            rtmpPull?: ({
                url?: string | undefined;
            } & {
                url?: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["rtmpPull"], "url">, never>) | undefined;
            manualLine?: ({} & {} & Record<Exclude<keyof I["streamLines"][number]["manualLine"], never>, never>) | undefined;
            autoLine?: ({
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } & {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["autoLine"], "status">, never>) | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["labels"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["streamLines"][number], keyof StreamLine>, never>)[] & Record<Exclude<keyof I["streamLines"], keyof {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListStreamLinesResponse>, never>>(object: I): ListStreamLinesResponse;
};
export declare const BatchGetStreamLinesRequest: {
    encode(message: BatchGetStreamLinesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchGetStreamLinesRequest;
    fromJSON(object: any): BatchGetStreamLinesRequest;
    toJSON(message: BatchGetStreamLinesRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        streamLineIds?: string[] | undefined;
    } & {
        channelId?: string | undefined;
        streamLineIds?: (string[] & string[] & Record<Exclude<keyof I["streamLineIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof BatchGetStreamLinesRequest>, never>>(object: I): BatchGetStreamLinesRequest;
};
export declare const BatchGetStreamLinesResponse: {
    encode(message: BatchGetStreamLinesResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchGetStreamLinesResponse;
    fromJSON(object: any): BatchGetStreamLinesResponse;
    toJSON(message: BatchGetStreamLinesResponse): unknown;
    fromPartial<I extends {
        streamLines?: {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        streamLines?: ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: ({
                url?: string | undefined;
            } & {
                url?: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["rtmpPush"], "url">, never>) | undefined;
            rtmpPull?: ({
                url?: string | undefined;
            } & {
                url?: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["rtmpPull"], "url">, never>) | undefined;
            manualLine?: ({} & {} & Record<Exclude<keyof I["streamLines"][number]["manualLine"], never>, never>) | undefined;
            autoLine?: ({
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } & {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["autoLine"], "status">, never>) | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["streamLines"][number]["labels"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["streamLines"][number], keyof StreamLine>, never>)[] & Record<Exclude<keyof I["streamLines"], keyof {
            id?: string | undefined;
            channelId?: string | undefined;
            title?: string | undefined;
            thumbnailId?: string | undefined;
            rtmpPush?: {
                url?: string | undefined;
            } | undefined;
            rtmpPull?: {
                url?: string | undefined;
            } | undefined;
            manualLine?: {} | undefined;
            autoLine?: {
                status?: import("../../../../yandex/cloud/video/v1/stream_line").AutoLine_AutoLineStatus | undefined;
            } | undefined;
            createdAt?: Date | undefined;
            updatedAt?: Date | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "streamLines">, never>>(object: I): BatchGetStreamLinesResponse;
};
export declare const CreateStreamLineRequest: {
    encode(message: CreateStreamLineRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamLineRequest;
    fromJSON(object: any): CreateStreamLineRequest;
    toJSON(message: CreateStreamLineRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        title?: string | undefined;
        thumbnailId?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        rtmpPush?: {} | undefined;
        rtmpPull?: {
            url?: string | undefined;
        } | undefined;
        manualLine?: {} | undefined;
        autoLine?: {} | undefined;
    } & {
        channelId?: string | undefined;
        title?: string | undefined;
        thumbnailId?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        rtmpPush?: ({} & {} & Record<Exclude<keyof I["rtmpPush"], never>, never>) | undefined;
        rtmpPull?: ({
            url?: string | undefined;
        } & {
            url?: string | undefined;
        } & Record<Exclude<keyof I["rtmpPull"], "url">, never>) | undefined;
        manualLine?: ({} & {} & Record<Exclude<keyof I["manualLine"], never>, never>) | undefined;
        autoLine?: ({} & {} & Record<Exclude<keyof I["autoLine"], never>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateStreamLineRequest>, never>>(object: I): CreateStreamLineRequest;
};
export declare const CreateStreamLineRequest_LabelsEntry: {
    encode(message: CreateStreamLineRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamLineRequest_LabelsEntry;
    fromJSON(object: any): CreateStreamLineRequest_LabelsEntry;
    toJSON(message: CreateStreamLineRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateStreamLineRequest_LabelsEntry>, never>>(object: I): CreateStreamLineRequest_LabelsEntry;
};
export declare const CreateStreamLineMetadata: {
    encode(message: CreateStreamLineMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateStreamLineMetadata;
    fromJSON(object: any): CreateStreamLineMetadata;
    toJSON(message: CreateStreamLineMetadata): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): CreateStreamLineMetadata;
};
export declare const UpdateStreamLineRequest: {
    encode(message: UpdateStreamLineRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamLineRequest;
    fromJSON(object: any): UpdateStreamLineRequest;
    toJSON(message: UpdateStreamLineRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
        fieldMask?: {
            paths?: string[] | undefined;
        } | undefined;
        title?: string | undefined;
        thumbnailId?: string | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        rtmpPush?: {} | undefined;
        rtmpPull?: {
            url?: string | undefined;
        } | undefined;
    } & {
        streamLineId?: 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;
        thumbnailId?: string | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        rtmpPush?: ({} & {} & Record<Exclude<keyof I["rtmpPush"], never>, never>) | undefined;
        rtmpPull?: ({
            url?: string | undefined;
        } & {
            url?: string | undefined;
        } & Record<Exclude<keyof I["rtmpPull"], "url">, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateStreamLineRequest>, never>>(object: I): UpdateStreamLineRequest;
};
export declare const UpdateStreamLineRequest_LabelsEntry: {
    encode(message: UpdateStreamLineRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamLineRequest_LabelsEntry;
    fromJSON(object: any): UpdateStreamLineRequest_LabelsEntry;
    toJSON(message: UpdateStreamLineRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateStreamLineRequest_LabelsEntry>, never>>(object: I): UpdateStreamLineRequest_LabelsEntry;
};
export declare const UpdateStreamLineMetadata: {
    encode(message: UpdateStreamLineMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamLineMetadata;
    fromJSON(object: any): UpdateStreamLineMetadata;
    toJSON(message: UpdateStreamLineMetadata): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): UpdateStreamLineMetadata;
};
export declare const DeleteStreamLineRequest: {
    encode(message: DeleteStreamLineRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteStreamLineRequest;
    fromJSON(object: any): DeleteStreamLineRequest;
    toJSON(message: DeleteStreamLineRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): DeleteStreamLineRequest;
};
export declare const DeleteStreamLineMetadata: {
    encode(message: DeleteStreamLineMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteStreamLineMetadata;
    fromJSON(object: any): DeleteStreamLineMetadata;
    toJSON(message: DeleteStreamLineMetadata): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): DeleteStreamLineMetadata;
};
export declare const BatchDeleteStreamLinesRequest: {
    encode(message: BatchDeleteStreamLinesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeleteStreamLinesRequest;
    fromJSON(object: any): BatchDeleteStreamLinesRequest;
    toJSON(message: BatchDeleteStreamLinesRequest): unknown;
    fromPartial<I extends {
        channelId?: string | undefined;
        streamLineIds?: string[] | undefined;
    } & {
        channelId?: string | undefined;
        streamLineIds?: (string[] & string[] & Record<Exclude<keyof I["streamLineIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof BatchDeleteStreamLinesRequest>, never>>(object: I): BatchDeleteStreamLinesRequest;
};
export declare const BatchDeleteStreamLinesMetadata: {
    encode(message: BatchDeleteStreamLinesMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BatchDeleteStreamLinesMetadata;
    fromJSON(object: any): BatchDeleteStreamLinesMetadata;
    toJSON(message: BatchDeleteStreamLinesMetadata): unknown;
    fromPartial<I extends {
        streamLineIds?: string[] | undefined;
    } & {
        streamLineIds?: (string[] & string[] & Record<Exclude<keyof I["streamLineIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "streamLineIds">, never>>(object: I): BatchDeleteStreamLinesMetadata;
};
export declare const PerformLineActionRequest: {
    encode(message: PerformLineActionRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformLineActionRequest;
    fromJSON(object: any): PerformLineActionRequest;
    toJSON(message: PerformLineActionRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
        activate?: {} | undefined;
        deactivate?: {} | undefined;
    } & {
        streamLineId?: string | undefined;
        activate?: ({} & {} & Record<Exclude<keyof I["activate"], never>, never>) | undefined;
        deactivate?: ({} & {} & Record<Exclude<keyof I["deactivate"], never>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof PerformLineActionRequest>, never>>(object: I): PerformLineActionRequest;
};
export declare const PerformLineActionMetadata: {
    encode(message: PerformLineActionMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PerformLineActionMetadata;
    fromJSON(object: any): PerformLineActionMetadata;
    toJSON(message: PerformLineActionMetadata): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): PerformLineActionMetadata;
};
export declare const RTMPPushParams: {
    encode(_: RTMPPushParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RTMPPushParams;
    fromJSON(_: any): RTMPPushParams;
    toJSON(_: RTMPPushParams): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): RTMPPushParams;
};
export declare const RTMPPullParams: {
    encode(message: RTMPPullParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RTMPPullParams;
    fromJSON(object: any): RTMPPullParams;
    toJSON(message: RTMPPullParams): unknown;
    fromPartial<I extends {
        url?: string | undefined;
    } & {
        url?: string | undefined;
    } & Record<Exclude<keyof I, "url">, never>>(object: I): RTMPPullParams;
};
export declare const ManualLineParams: {
    encode(_: ManualLineParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ManualLineParams;
    fromJSON(_: any): ManualLineParams;
    toJSON(_: ManualLineParams): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): ManualLineParams;
};
export declare const AutoLineParams: {
    encode(_: AutoLineParams, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AutoLineParams;
    fromJSON(_: any): AutoLineParams;
    toJSON(_: AutoLineParams): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): AutoLineParams;
};
export declare const ActivateAction: {
    encode(_: ActivateAction, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ActivateAction;
    fromJSON(_: any): ActivateAction;
    toJSON(_: ActivateAction): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): ActivateAction;
};
export declare const DeactivateAction: {
    encode(_: DeactivateAction, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeactivateAction;
    fromJSON(_: any): DeactivateAction;
    toJSON(_: DeactivateAction): unknown;
    fromPartial<I extends {} & {} & Record<Exclude<keyof I, never>, never>>(_: I): DeactivateAction;
};
export declare const GetStreamKeyRequest: {
    encode(message: GetStreamKeyRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetStreamKeyRequest;
    fromJSON(object: any): GetStreamKeyRequest;
    toJSON(message: GetStreamKeyRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): GetStreamKeyRequest;
};
export declare const UpdateStreamKeyRequest: {
    encode(message: UpdateStreamKeyRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamKeyRequest;
    fromJSON(object: any): UpdateStreamKeyRequest;
    toJSON(message: UpdateStreamKeyRequest): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): UpdateStreamKeyRequest;
};
export declare const UpdateStreamKeyMetadata: {
    encode(message: UpdateStreamKeyMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateStreamKeyMetadata;
    fromJSON(object: any): UpdateStreamKeyMetadata;
    toJSON(message: UpdateStreamKeyMetadata): unknown;
    fromPartial<I extends {
        streamLineId?: string | undefined;
    } & {
        streamLineId?: string | undefined;
    } & Record<Exclude<keyof I, "streamLineId">, never>>(object: I): UpdateStreamKeyMetadata;
};
/** Stream line management service. */
export declare const StreamLineServiceService: {
    /** Get the specific stream line. */
    readonly get: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetStreamLineRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetStreamLineRequest;
        readonly responseSerialize: (value: StreamLine) => Buffer;
        readonly responseDeserialize: (value: Buffer) => StreamLine;
    };
    /** List lines for channel. */
    readonly list: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListStreamLinesRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListStreamLinesRequest;
        readonly responseSerialize: (value: ListStreamLinesResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListStreamLinesResponse;
    };
    /** Batch get lines for channel. */
    readonly batchGet: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/BatchGet";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: BatchGetStreamLinesRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => BatchGetStreamLinesRequest;
        readonly responseSerialize: (value: BatchGetStreamLinesResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => BatchGetStreamLinesResponse;
    };
    /** Create stream line. */
    readonly create: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateStreamLineRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateStreamLineRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Update stream line. */
    readonly update: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateStreamLineRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateStreamLineRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Delete stream line. */
    readonly delete: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteStreamLineRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteStreamLineRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Batch delete stream lines. */
    readonly batchDelete: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/BatchDelete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: BatchDeleteStreamLinesRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => BatchDeleteStreamLinesRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Perform an action on the line. */
    readonly performAction: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/PerformAction";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: PerformLineActionRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => PerformLineActionRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Get unique stream key. */
    readonly getStreamKey: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/GetStreamKey";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetStreamKeyRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetStreamKeyRequest;
        readonly responseSerialize: (value: PushStreamKey) => Buffer;
        readonly responseDeserialize: (value: Buffer) => PushStreamKey;
    };
    /** Update stream key. */
    readonly updateStreamKey: {
        readonly path: "/yandex.cloud.video.v1.StreamLineService/UpdateStreamKey";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateStreamKeyRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateStreamKeyRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
};
export interface StreamLineServiceServer extends UntypedServiceImplementation {
    /** Get the specific stream line. */
    get: handleUnaryCall<GetStreamLineRequest, StreamLine>;
    /** List lines for channel. */
    list: handleUnaryCall<ListStreamLinesRequest, ListStreamLinesResponse>;
    /** Batch get lines for channel. */
    batchGet: handleUnaryCall<BatchGetStreamLinesRequest, BatchGetStreamLinesResponse>;
    /** Create stream line. */
    create: handleUnaryCall<CreateStreamLineRequest, Operation>;
    /** Update stream line. */
    update: handleUnaryCall<UpdateStreamLineRequest, Operation>;
    /** Delete stream line. */
    delete: handleUnaryCall<DeleteStreamLineRequest, Operation>;
    /** Batch delete stream lines. */
    batchDelete: handleUnaryCall<BatchDeleteStreamLinesRequest, Operation>;
    /** Perform an action on the line. */
    performAction: handleUnaryCall<PerformLineActionRequest, Operation>;
    /** Get unique stream key. */
    getStreamKey: handleUnaryCall<GetStreamKeyRequest, PushStreamKey>;
    /** Update stream key. */
    updateStreamKey: handleUnaryCall<UpdateStreamKeyRequest, Operation>;
}
export interface StreamLineServiceClient extends Client {
    /** Get the specific stream line. */
    get(request: GetStreamLineRequest, callback: (error: ServiceError | null, response: StreamLine) => void): ClientUnaryCall;
    get(request: GetStreamLineRequest, metadata: Metadata, callback: (error: ServiceError | null, response: StreamLine) => void): ClientUnaryCall;
    get(request: GetStreamLineRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: StreamLine) => void): ClientUnaryCall;
    /** List lines for channel. */
    list(request: ListStreamLinesRequest, callback: (error: ServiceError | null, response: ListStreamLinesResponse) => void): ClientUnaryCall;
    list(request: ListStreamLinesRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListStreamLinesResponse) => void): ClientUnaryCall;
    list(request: ListStreamLinesRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListStreamLinesResponse) => void): ClientUnaryCall;
    /** Batch get lines for channel. */
    batchGet(request: BatchGetStreamLinesRequest, callback: (error: ServiceError | null, response: BatchGetStreamLinesResponse) => void): ClientUnaryCall;
    batchGet(request: BatchGetStreamLinesRequest, metadata: Metadata, callback: (error: ServiceError | null, response: BatchGetStreamLinesResponse) => void): ClientUnaryCall;
    batchGet(request: BatchGetStreamLinesRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: BatchGetStreamLinesResponse) => void): ClientUnaryCall;
    /** Create stream line. */
    create(request: CreateStreamLineRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateStreamLineRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateStreamLineRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Update stream line. */
    update(request: UpdateStreamLineRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateStreamLineRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateStreamLineRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Delete stream line. */
    delete(request: DeleteStreamLineRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteStreamLineRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteStreamLineRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Batch delete stream lines. */
    batchDelete(request: BatchDeleteStreamLinesRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeleteStreamLinesRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    batchDelete(request: BatchDeleteStreamLinesRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Perform an action on the line. */
    performAction(request: PerformLineActionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    performAction(request: PerformLineActionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    performAction(request: PerformLineActionRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Get unique stream key. */
    getStreamKey(request: GetStreamKeyRequest, callback: (error: ServiceError | null, response: PushStreamKey) => void): ClientUnaryCall;
    getStreamKey(request: GetStreamKeyRequest, metadata: Metadata, callback: (error: ServiceError | null, response: PushStreamKey) => void): ClientUnaryCall;
    getStreamKey(request: GetStreamKeyRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: PushStreamKey) => void): ClientUnaryCall;
    /** Update stream key. */
    updateStreamKey(request: UpdateStreamKeyRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    updateStreamKey(request: UpdateStreamKeyRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    updateStreamKey(request: UpdateStreamKeyRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
}
export declare const StreamLineServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): StreamLineServiceClient;
    service: typeof StreamLineServiceService;
};
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 {};
