import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { Asset_AssetType } from "../content/asset";
import { MediaReference } from "../content/media_reference";
import { CaptureCharacteristics } from "./capture_characteristics";
import { AudioCodecFormat, ImageCodecFormat, VideoCodecFormat } from "./media_codec_formats";
import { VideoFileFormat } from "./media_file_formats";
import { MediaId } from "./media_id";
export declare const protobufPackage = "snapchat.snapdoc";
export interface AudioMetadata {
    codecFormat: AudioCodecFormat;
}
export interface ImageMetadata {
    codecFormat: ImageCodecFormat;
}
export interface VideoMetadata {
    codecFormat: VideoCodecFormat;
    containerFormat: VideoFileFormat;
}
export interface MediaMetadata {
    orientation: MediaMetadata_Orientation;
    dimensions: MediaMetadata_MediaDimensions | undefined;
    mediaDurationMs: number;
    mediaId: MediaId | undefined;
    encryptionInfoV1: MediaMetadata_MediaEncryptionInfo | undefined;
    encryptionInfoV2: MediaMetadata_MediaEncryptionInfo | undefined;
    masterKeyEncryptedEncryptionInfo: MediaMetadata_MediaEncryptionInfo | undefined;
    assetType: Asset_AssetType;
    captureCharacteristics: CaptureCharacteristics | undefined;
    mediaOriginCamera?: MediaOriginCamera | undefined;
    mediaOriginExternalStorage?: MediaOriginExternalStorage | undefined;
    mediaOriginPixy?: MediaOriginPixy | undefined;
    mediaOriginSpectacles?: MediaOriginSpectacles | undefined;
    mediaOriginAi?: MediaOriginAI | undefined;
    dreamsMetadata?: DreamsMetadata | undefined;
    additionalOrigins: MediaOrigin[];
    displayOrientation: MediaMetadata_DisplayOrientation;
    audio: AudioMetadata | undefined;
    image: ImageMetadata | undefined;
    video: VideoMetadata | undefined;
    type: MediaMetadata_MediaType;
    legacyMediaSource?: MediaMetadata_LegacyMediaSource | undefined;
    contentDescriptor?: Uint8Array | undefined;
    mediaUrl: string;
    hasSound: boolean;
    zipped: boolean;
    frontFacing: boolean;
    mediaReference: MediaReference | undefined;
}
export declare enum MediaMetadata_Orientation {
    VERTICAL = 0,
    HORIZONTAL = 1,
    UNRECOGNIZED = -1
}
export declare enum MediaMetadata_DisplayOrientation {
    UNSET = 0,
    UP = 1,
    DOWN = 2,
    LEFT = 3,
    RIGHT = 4,
    UP_MIRRORED = 5,
    DOWN_MIRRORED = 6,
    LEFT_MIRRORED = 7,
    RIGHT_MIRRORED = 8,
    UNRECOGNIZED = -1
}
export declare enum MediaMetadata_MediaType {
    IMAGE = 0,
    VIDEO = 1,
    GIF = 2,
    AUDIO = 3,
    UNKNOWN = 4,
    UNRECOGNIZED = -1
}
export interface MediaMetadata_MediaDimensions {
    width: number;
    height: number;
}
export interface MediaMetadata_MediaEncryptionInfo {
    key: Uint8Array;
    iv: Uint8Array;
}
export interface MediaMetadata_LegacyMediaSource {
    sourceMediaId: string;
    directDownloadUrl: MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl | undefined;
}
export interface MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl {
    url: string;
    expirySeconds: string;
    type: MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl_MediaUrlType;
    region: string;
}
export declare enum MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl_MediaUrlType {
    GCS = 0,
    S3 = 1,
    UNRECOGNIZED_VALUE = 2,
    UNRECOGNIZED = -1
}
export interface MediaOrigin {
    mediaOriginCamera?: MediaOriginCamera | undefined;
    mediaOriginExternalStorage?: MediaOriginExternalStorage | undefined;
    mediaOriginPixy?: MediaOriginPixy | undefined;
    mediaOriginSpectacles?: MediaOriginSpectacles | undefined;
    mediaOriginAi?: MediaOriginAI | undefined;
    dreamsMetadata?: DreamsMetadata | undefined;
}
export interface MediaOriginCamera {
}
export interface MediaOriginPixy {
}
export interface MediaOriginSpectacles {
}
export interface MediaOriginExternalStorage {
    creationTimestamp: string;
    mediaSource: MediaOriginExternalStorage_ExternalMediaSource;
    insecureFileMetadata: InsecureFileMetadata | undefined;
    originalLocalIds: string[];
}
export declare enum MediaOriginExternalStorage_ExternalMediaSource {
    UNSET = 0,
    NONE = 1,
    UNKNOWN = 2,
    SNAPCHAT = 3,
    TIKTOK = 4,
    INSTAGRAM = 5,
    CAPCUT = 6,
    UNRECOGNIZED = -1
}
export interface InsecureFileMetadata {
    lensId: string[];
    musicTrackId: string;
}
export interface MediaOriginAI {
}
export interface DreamsMetadata {
    packId: string;
    templateId: string;
    contentType: DreamsMetadata_LensContentType[];
}
export declare enum DreamsMetadata_LensContentType {
    UNSET = 0,
    NONE = 1,
    GEN_ML = 2,
    UCO = 3,
    UNRECOGNIZED = -1
}
export declare const AudioMetadata: MessageFns<AudioMetadata>;
export declare const ImageMetadata: MessageFns<ImageMetadata>;
export declare const VideoMetadata: MessageFns<VideoMetadata>;
export declare const MediaMetadata: MessageFns<MediaMetadata>;
export declare const MediaMetadata_MediaDimensions: MessageFns<MediaMetadata_MediaDimensions>;
export declare const MediaMetadata_MediaEncryptionInfo: MessageFns<MediaMetadata_MediaEncryptionInfo>;
export declare const MediaMetadata_LegacyMediaSource: MessageFns<MediaMetadata_LegacyMediaSource>;
export declare const MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl: MessageFns<MediaMetadata_LegacyMediaSource_LegacyDirectDownloadUrl>;
export declare const MediaOrigin: MessageFns<MediaOrigin>;
export declare const MediaOriginCamera: MessageFns<MediaOriginCamera>;
export declare const MediaOriginPixy: MessageFns<MediaOriginPixy>;
export declare const MediaOriginSpectacles: MessageFns<MediaOriginSpectacles>;
export declare const MediaOriginExternalStorage: MessageFns<MediaOriginExternalStorage>;
export declare const InsecureFileMetadata: MessageFns<InsecureFileMetadata>;
export declare const MediaOriginAI: MessageFns<MediaOriginAI>;
export declare const DreamsMetadata: MessageFns<DreamsMetadata>;
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.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]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export interface MessageFns<T> {
    encode(message: T, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): T;
    create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
    fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
}
export {};
//# sourceMappingURL=media.d.ts.map