import _m0 from "protobufjs/minimal";
import { MediaType } from "./media_types";
export declare const protobufPackage = "snapchat.content";
export interface VideoDescription {
    mediaQualityType: VideoDescription_MediaQualityType;
    videoPlaybackType: VideoDescription_VideoPlaybackType;
}
export declare enum VideoDescription_MediaQualityType {
    MEDIA_QUALITY_TYPE_UNKNOWN = 0,
    MEDIA_QUALITY_TYPE_LEVEL_1 = 100,
    MEDIA_QUALITY_TYPE_LEVEL_2 = 200,
    MEDIA_QUALITY_TYPE_LEVEL_3 = 300,
    MEDIA_QUALITY_TYPE_LEVEL_4 = 400,
    MEDIA_QUALITY_TYPE_LEVEL_5 = 500,
    MEDIA_QUALITY_TYPE_LEVEL_6 = 600,
    MEDIA_QUALITY_TYPE_LEVEL_7 = 700,
    MEDIA_QUALITY_TYPE_LEVEL_MAX = 5000,
    MEDIA_QUALITY_TYPE_LEVEL_4_5 = 450,
    MEDIA_QUALITY_TYPE_LEVEL_2_1 = 210,
    MEDIA_QUALITY_TYPE_LEVEL_2_2 = 220,
    MEDIA_QUALITY_TYPE_LEVEL_2_5 = 250,
    MEDIA_QUALITY_TYPE_LEVEL_3_2 = 320,
    MEDIA_QUALITY_TYPE_LEVEL_3_5 = 350,
    MEDIA_QUALITY_TYPE_LEVEL_2_7 = 270,
    MEDIA_QUALITY_TYPE_LEVEL_6_5 = 650,
    UNRECOGNIZED = -1
}
export declare enum VideoDescription_VideoPlaybackType {
    UNKNOWN_VIDEO_PLAYBACK_TYPE = 0,
    FASTSTART_DISABLED = 1,
    FASTSTART_ENABLED = 2,
    HTTP_STREAMING_DASH = 3,
    HTTP_STREAMING_HLS = 4,
    UNRECOGNIZED = -1
}
export interface MediaReference {
    mediaListId: string;
    claimBehavior: MediaReference_ClaimBehavior;
    url: string;
    contentObject: Uint8Array;
    localContentKey: string;
    localCacheKey: string;
    videoDescription: VideoDescription | undefined;
    mediaType: MediaType;
}
export declare enum MediaReference_ClaimBehavior {
    CAN_EXTEND_MEDIA_CLAIM = 0,
    DO_NOT_CLAIM = 1,
    UNRECOGNIZED = -1
}
export declare const VideoDescription: {
    encode(message: VideoDescription, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): VideoDescription;
    fromPartial<I extends {
        mediaQualityType?: VideoDescription_MediaQualityType | undefined;
        videoPlaybackType?: VideoDescription_VideoPlaybackType | undefined;
    } & {
        mediaQualityType?: VideoDescription_MediaQualityType | undefined;
        videoPlaybackType?: VideoDescription_VideoPlaybackType | undefined;
    } & Record<Exclude<keyof I, keyof VideoDescription>, never>>(object: I): VideoDescription;
};
export declare const MediaReference: {
    encode(message: MediaReference, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): MediaReference;
    fromPartial<I extends {
        mediaListId?: string | undefined;
        claimBehavior?: MediaReference_ClaimBehavior | undefined;
        url?: string | undefined;
        contentObject?: Uint8Array | undefined;
        localContentKey?: string | undefined;
        localCacheKey?: string | undefined;
        videoDescription?: {
            mediaQualityType?: VideoDescription_MediaQualityType | undefined;
            videoPlaybackType?: VideoDescription_VideoPlaybackType | undefined;
        } | undefined;
        mediaType?: MediaType | undefined;
    } & {
        mediaListId?: string | undefined;
        claimBehavior?: MediaReference_ClaimBehavior | undefined;
        url?: string | undefined;
        contentObject?: Uint8Array | undefined;
        localContentKey?: string | undefined;
        localCacheKey?: string | undefined;
        videoDescription?: ({
            mediaQualityType?: VideoDescription_MediaQualityType | undefined;
            videoPlaybackType?: VideoDescription_VideoPlaybackType | undefined;
        } & {
            mediaQualityType?: VideoDescription_MediaQualityType | undefined;
            videoPlaybackType?: VideoDescription_VideoPlaybackType | undefined;
        } & Record<Exclude<keyof I["videoDescription"], keyof VideoDescription>, never>) | undefined;
        mediaType?: MediaType | undefined;
    } & Record<Exclude<keyof I, keyof MediaReference>, never>>(object: I): MediaReference;
};
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 {};
//# sourceMappingURL=media_reference.d.ts.map