import _m0 from 'protobufjs/minimal';
export declare const protobufPackage = "yandex.cloud.video.v1";
/** Root entity for content separation. */
export interface Channel {
    /** ID of the channel. */
    id: string;
    /** ID of the organization where channel should be created. */
    organizationId: string;
    /** Channel title. */
    title: string;
    /** Channel description. */
    description: string;
    /** Time when channel was created. */
    createdAt?: Date;
    /** Time of last channel update. */
    updatedAt?: Date;
    /** Custom labels as `` key:value `` pairs. Maximum 64 per resource. */
    labels: {
        [key: string]: string;
    };
    /** Channel settings. */
    settings?: ChannelSettings;
}
export interface Channel_LabelsEntry {
    key: string;
    value: string;
}
/** Channel settings. */
export interface ChannelSettings {
    /** Advertisement settings. */
    advertisement?: AdvertisementSettings;
    /** Referer verification settings */
    refererVerification?: RefererVerificationSettings;
}
/** Advertisement settings. */
export interface AdvertisementSettings {
    yandexDirect?: AdvertisementSettings_YandexDirect | undefined;
}
/** YandexDirect provider settings. */
export interface AdvertisementSettings_YandexDirect {
    /** Enable Partner Ad for Live and VOD content. */
    enable: boolean;
    /** Advertisement page ID. */
    pageId: number;
    /** Advertisement category. */
    category: number;
}
/** Referer verification settings. */
export interface RefererVerificationSettings {
    /** Enable verification */
    enable: boolean;
    /** List of available domains */
    allowedDomains: string[];
}
export declare const Channel: {
    encode(message: Channel, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Channel;
    fromJSON(object: any): Channel;
    toJSON(message: Channel): unknown;
    fromPartial<I extends {
        id?: string | undefined;
        organizationId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
        settings?: {
            advertisement?: {
                yandexDirect?: {
                    enable?: boolean | undefined;
                    pageId?: number | undefined;
                    category?: number | undefined;
                } | undefined;
            } | undefined;
            refererVerification?: {
                enable?: boolean | undefined;
                allowedDomains?: string[] | undefined;
            } | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        organizationId?: string | undefined;
        title?: string | undefined;
        description?: string | undefined;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
        settings?: ({
            advertisement?: {
                yandexDirect?: {
                    enable?: boolean | undefined;
                    pageId?: number | undefined;
                    category?: number | undefined;
                } | undefined;
            } | undefined;
            refererVerification?: {
                enable?: boolean | undefined;
                allowedDomains?: string[] | undefined;
            } | undefined;
        } & {
            advertisement?: ({
                yandexDirect?: {
                    enable?: boolean | undefined;
                    pageId?: number | undefined;
                    category?: number | undefined;
                } | undefined;
            } & {
                yandexDirect?: ({
                    enable?: boolean | undefined;
                    pageId?: number | undefined;
                    category?: number | undefined;
                } & {
                    enable?: boolean | undefined;
                    pageId?: number | undefined;
                    category?: number | undefined;
                } & Record<Exclude<keyof I["settings"]["advertisement"]["yandexDirect"], keyof AdvertisementSettings_YandexDirect>, never>) | undefined;
            } & Record<Exclude<keyof I["settings"]["advertisement"], "yandexDirect">, never>) | undefined;
            refererVerification?: ({
                enable?: boolean | undefined;
                allowedDomains?: string[] | undefined;
            } & {
                enable?: boolean | undefined;
                allowedDomains?: (string[] & string[] & Record<Exclude<keyof I["settings"]["refererVerification"]["allowedDomains"], keyof string[]>, never>) | undefined;
            } & Record<Exclude<keyof I["settings"]["refererVerification"], keyof RefererVerificationSettings>, never>) | undefined;
        } & Record<Exclude<keyof I["settings"], keyof ChannelSettings>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Channel>, never>>(object: I): Channel;
};
export declare const Channel_LabelsEntry: {
    encode(message: Channel_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Channel_LabelsEntry;
    fromJSON(object: any): Channel_LabelsEntry;
    toJSON(message: Channel_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Channel_LabelsEntry>, never>>(object: I): Channel_LabelsEntry;
};
export declare const ChannelSettings: {
    encode(message: ChannelSettings, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ChannelSettings;
    fromJSON(object: any): ChannelSettings;
    toJSON(message: ChannelSettings): unknown;
    fromPartial<I extends {
        advertisement?: {
            yandexDirect?: {
                enable?: boolean | undefined;
                pageId?: number | undefined;
                category?: number | undefined;
            } | undefined;
        } | undefined;
        refererVerification?: {
            enable?: boolean | undefined;
            allowedDomains?: string[] | undefined;
        } | undefined;
    } & {
        advertisement?: ({
            yandexDirect?: {
                enable?: boolean | undefined;
                pageId?: number | undefined;
                category?: number | undefined;
            } | undefined;
        } & {
            yandexDirect?: ({
                enable?: boolean | undefined;
                pageId?: number | undefined;
                category?: number | undefined;
            } & {
                enable?: boolean | undefined;
                pageId?: number | undefined;
                category?: number | undefined;
            } & Record<Exclude<keyof I["advertisement"]["yandexDirect"], keyof AdvertisementSettings_YandexDirect>, never>) | undefined;
        } & Record<Exclude<keyof I["advertisement"], "yandexDirect">, never>) | undefined;
        refererVerification?: ({
            enable?: boolean | undefined;
            allowedDomains?: string[] | undefined;
        } & {
            enable?: boolean | undefined;
            allowedDomains?: (string[] & string[] & Record<Exclude<keyof I["refererVerification"]["allowedDomains"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["refererVerification"], keyof RefererVerificationSettings>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof ChannelSettings>, never>>(object: I): ChannelSettings;
};
export declare const AdvertisementSettings: {
    encode(message: AdvertisementSettings, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AdvertisementSettings;
    fromJSON(object: any): AdvertisementSettings;
    toJSON(message: AdvertisementSettings): unknown;
    fromPartial<I extends {
        yandexDirect?: {
            enable?: boolean | undefined;
            pageId?: number | undefined;
            category?: number | undefined;
        } | undefined;
    } & {
        yandexDirect?: ({
            enable?: boolean | undefined;
            pageId?: number | undefined;
            category?: number | undefined;
        } & {
            enable?: boolean | undefined;
            pageId?: number | undefined;
            category?: number | undefined;
        } & Record<Exclude<keyof I["yandexDirect"], keyof AdvertisementSettings_YandexDirect>, never>) | undefined;
    } & Record<Exclude<keyof I, "yandexDirect">, never>>(object: I): AdvertisementSettings;
};
export declare const AdvertisementSettings_YandexDirect: {
    encode(message: AdvertisementSettings_YandexDirect, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AdvertisementSettings_YandexDirect;
    fromJSON(object: any): AdvertisementSettings_YandexDirect;
    toJSON(message: AdvertisementSettings_YandexDirect): unknown;
    fromPartial<I extends {
        enable?: boolean | undefined;
        pageId?: number | undefined;
        category?: number | undefined;
    } & {
        enable?: boolean | undefined;
        pageId?: number | undefined;
        category?: number | undefined;
    } & Record<Exclude<keyof I, keyof AdvertisementSettings_YandexDirect>, never>>(object: I): AdvertisementSettings_YandexDirect;
};
export declare const RefererVerificationSettings: {
    encode(message: RefererVerificationSettings, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RefererVerificationSettings;
    fromJSON(object: any): RefererVerificationSettings;
    toJSON(message: RefererVerificationSettings): unknown;
    fromPartial<I extends {
        enable?: boolean | undefined;
        allowedDomains?: string[] | undefined;
    } & {
        enable?: boolean | undefined;
        allowedDomains?: (string[] & string[] & Record<Exclude<keyof I["allowedDomains"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof RefererVerificationSettings>, never>>(object: I): RefererVerificationSettings;
};
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 {};
