import _m0 from "protobufjs/minimal";
import { Any } from "../../google/protobuf/any";
export declare const protobufPackage = "com.snap.camerakit.v3";
export interface Lens {
    id: string;
    name: string;
    vendorData: {
        [key: string]: string;
    };
    content: Content | undefined;
    isThirdParty: boolean;
    cameraFacingPreference: Lens_CameraFacing;
    featureMetadata: Any[];
    lensCreator: LensCreator | undefined;
    scannable: Scannable | undefined;
}
export declare enum Lens_CameraFacing {
    CAMERA_FACING_UNSET = 0,
    CAMERA_FACING_FRONT = 1,
    CAMERA_FACING_BACK = 2,
    UNRECOGNIZED = -1
}
export interface Lens_VendorDataEntry {
    key: string;
    value: string;
}
export interface Content {
    lnsUrl: string;
    lnsSha256: string;
    iconUrl: string;
    preview: Preview | undefined;
    assetManifest: LensAssetManifestItem[];
    defaultHintId: string;
    hintTranslations: {
        [key: string]: string;
    };
    lnsUrlBolt: string;
    iconUrlBolt: string;
}
export interface Content_HintTranslationsEntry {
    key: string;
    value: string;
}
export interface LensAssetManifestItem {
    type: LensAssetManifestItem_Type;
    id: string;
    requestTiming: LensAssetManifestItem_RequestTiming;
    assetUrl: string;
    assetChecksum: string;
}
export declare enum LensAssetManifestItem_Type {
    DEVICE_DEPENDENT_ASSET_UNSET = 0,
    ASSET = 1,
    UNRECOGNIZED = -1
}
export declare enum LensAssetManifestItem_RequestTiming {
    PRELOAD_UNSET = 0,
    ON_DEMAND = 1,
    REQUIRED = 2,
    UNRECOGNIZED = -1
}
export interface Preview {
    imageUrl: string;
    imageSequenceSize: number;
    imageSequenceWebpUrlPattern: string;
}
export interface LensCreator {
    displayName: string;
}
export interface Scannable {
    snapcodeImageUrl: string;
    snapcodeDeeplink: string;
}
export declare const Lens: {
    encode(message: Lens, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Lens;
    fromPartial<I extends {
        id?: string | undefined;
        name?: string | undefined;
        vendorData?: {
            [x: string]: string | undefined;
        } | undefined;
        content?: {
            lnsUrl?: string | undefined;
            lnsSha256?: string | undefined;
            iconUrl?: string | undefined;
            preview?: {
                imageUrl?: string | undefined;
                imageSequenceSize?: number | undefined;
                imageSequenceWebpUrlPattern?: string | undefined;
            } | undefined;
            assetManifest?: {
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            }[] | undefined;
            defaultHintId?: string | undefined;
            hintTranslations?: {
                [x: string]: string | undefined;
            } | undefined;
            lnsUrlBolt?: string | undefined;
            iconUrlBolt?: string | undefined;
        } | undefined;
        isThirdParty?: boolean | undefined;
        cameraFacingPreference?: Lens_CameraFacing | undefined;
        featureMetadata?: {
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        }[] | undefined;
        lensCreator?: {
            displayName?: string | undefined;
        } | undefined;
        scannable?: {
            snapcodeImageUrl?: string | undefined;
            snapcodeDeeplink?: string | undefined;
        } | undefined;
    } & {
        id?: string | undefined;
        name?: string | undefined;
        vendorData?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["vendorData"], string | number>, never>) | undefined;
        content?: ({
            lnsUrl?: string | undefined;
            lnsSha256?: string | undefined;
            iconUrl?: string | undefined;
            preview?: {
                imageUrl?: string | undefined;
                imageSequenceSize?: number | undefined;
                imageSequenceWebpUrlPattern?: string | undefined;
            } | undefined;
            assetManifest?: {
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            }[] | undefined;
            defaultHintId?: string | undefined;
            hintTranslations?: {
                [x: string]: string | undefined;
            } | undefined;
            lnsUrlBolt?: string | undefined;
            iconUrlBolt?: string | undefined;
        } & {
            lnsUrl?: string | undefined;
            lnsSha256?: string | undefined;
            iconUrl?: string | undefined;
            preview?: ({
                imageUrl?: string | undefined;
                imageSequenceSize?: number | undefined;
                imageSequenceWebpUrlPattern?: string | undefined;
            } & {
                imageUrl?: string | undefined;
                imageSequenceSize?: number | undefined;
                imageSequenceWebpUrlPattern?: string | undefined;
            } & Record<Exclude<keyof I["content"]["preview"], keyof Preview>, never>) | undefined;
            assetManifest?: ({
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            }[] & ({
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            } & {
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            } & Record<Exclude<keyof I["content"]["assetManifest"][number], keyof LensAssetManifestItem>, never>)[] & Record<Exclude<keyof I["content"]["assetManifest"], keyof {
                type?: LensAssetManifestItem_Type | undefined;
                id?: string | undefined;
                requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
                assetUrl?: string | undefined;
                assetChecksum?: string | undefined;
            }[]>, never>) | undefined;
            defaultHintId?: string | undefined;
            hintTranslations?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["content"]["hintTranslations"], string | number>, never>) | undefined;
            lnsUrlBolt?: string | undefined;
            iconUrlBolt?: string | undefined;
        } & Record<Exclude<keyof I["content"], keyof Content>, never>) | undefined;
        isThirdParty?: boolean | undefined;
        cameraFacingPreference?: Lens_CameraFacing | undefined;
        featureMetadata?: ({
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        }[] & ({
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        } & {
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        } & Record<Exclude<keyof I["featureMetadata"][number], keyof Any>, never>)[] & Record<Exclude<keyof I["featureMetadata"], keyof {
            typeUrl?: string | undefined;
            value?: Uint8Array | undefined;
        }[]>, never>) | undefined;
        lensCreator?: ({
            displayName?: string | undefined;
        } & {
            displayName?: string | undefined;
        } & Record<Exclude<keyof I["lensCreator"], "displayName">, never>) | undefined;
        scannable?: ({
            snapcodeImageUrl?: string | undefined;
            snapcodeDeeplink?: string | undefined;
        } & {
            snapcodeImageUrl?: string | undefined;
            snapcodeDeeplink?: string | undefined;
        } & Record<Exclude<keyof I["scannable"], keyof Scannable>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof Lens>, never>>(object: I): Lens;
};
export declare const Lens_VendorDataEntry: {
    encode(message: Lens_VendorDataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Lens_VendorDataEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Lens_VendorDataEntry>, never>>(object: I): Lens_VendorDataEntry;
};
export declare const Content: {
    encode(message: Content, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Content;
    fromPartial<I extends {
        lnsUrl?: string | undefined;
        lnsSha256?: string | undefined;
        iconUrl?: string | undefined;
        preview?: {
            imageUrl?: string | undefined;
            imageSequenceSize?: number | undefined;
            imageSequenceWebpUrlPattern?: string | undefined;
        } | undefined;
        assetManifest?: {
            type?: LensAssetManifestItem_Type | undefined;
            id?: string | undefined;
            requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
            assetUrl?: string | undefined;
            assetChecksum?: string | undefined;
        }[] | undefined;
        defaultHintId?: string | undefined;
        hintTranslations?: {
            [x: string]: string | undefined;
        } | undefined;
        lnsUrlBolt?: string | undefined;
        iconUrlBolt?: string | undefined;
    } & {
        lnsUrl?: string | undefined;
        lnsSha256?: string | undefined;
        iconUrl?: string | undefined;
        preview?: ({
            imageUrl?: string | undefined;
            imageSequenceSize?: number | undefined;
            imageSequenceWebpUrlPattern?: string | undefined;
        } & {
            imageUrl?: string | undefined;
            imageSequenceSize?: number | undefined;
            imageSequenceWebpUrlPattern?: string | undefined;
        } & Record<Exclude<keyof I["preview"], keyof Preview>, never>) | undefined;
        assetManifest?: ({
            type?: LensAssetManifestItem_Type | undefined;
            id?: string | undefined;
            requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
            assetUrl?: string | undefined;
            assetChecksum?: string | undefined;
        }[] & ({
            type?: LensAssetManifestItem_Type | undefined;
            id?: string | undefined;
            requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
            assetUrl?: string | undefined;
            assetChecksum?: string | undefined;
        } & {
            type?: LensAssetManifestItem_Type | undefined;
            id?: string | undefined;
            requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
            assetUrl?: string | undefined;
            assetChecksum?: string | undefined;
        } & Record<Exclude<keyof I["assetManifest"][number], keyof LensAssetManifestItem>, never>)[] & Record<Exclude<keyof I["assetManifest"], keyof {
            type?: LensAssetManifestItem_Type | undefined;
            id?: string | undefined;
            requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
            assetUrl?: string | undefined;
            assetChecksum?: string | undefined;
        }[]>, never>) | undefined;
        defaultHintId?: string | undefined;
        hintTranslations?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["hintTranslations"], string | number>, never>) | undefined;
        lnsUrlBolt?: string | undefined;
        iconUrlBolt?: string | undefined;
    } & Record<Exclude<keyof I, keyof Content>, never>>(object: I): Content;
};
export declare const Content_HintTranslationsEntry: {
    encode(message: Content_HintTranslationsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Content_HintTranslationsEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof Content_HintTranslationsEntry>, never>>(object: I): Content_HintTranslationsEntry;
};
export declare const LensAssetManifestItem: {
    encode(message: LensAssetManifestItem, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): LensAssetManifestItem;
    fromPartial<I extends {
        type?: LensAssetManifestItem_Type | undefined;
        id?: string | undefined;
        requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
        assetUrl?: string | undefined;
        assetChecksum?: string | undefined;
    } & {
        type?: LensAssetManifestItem_Type | undefined;
        id?: string | undefined;
        requestTiming?: LensAssetManifestItem_RequestTiming | undefined;
        assetUrl?: string | undefined;
        assetChecksum?: string | undefined;
    } & Record<Exclude<keyof I, keyof LensAssetManifestItem>, never>>(object: I): LensAssetManifestItem;
};
export declare const Preview: {
    encode(message: Preview, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Preview;
    fromPartial<I extends {
        imageUrl?: string | undefined;
        imageSequenceSize?: number | undefined;
        imageSequenceWebpUrlPattern?: string | undefined;
    } & {
        imageUrl?: string | undefined;
        imageSequenceSize?: number | undefined;
        imageSequenceWebpUrlPattern?: string | undefined;
    } & Record<Exclude<keyof I, keyof Preview>, never>>(object: I): Preview;
};
export declare const LensCreator: {
    encode(message: LensCreator, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): LensCreator;
    fromPartial<I extends {
        displayName?: string | undefined;
    } & {
        displayName?: string | undefined;
    } & Record<Exclude<keyof I, "displayName">, never>>(object: I): LensCreator;
};
export declare const Scannable: {
    encode(message: Scannable, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Scannable;
    fromPartial<I extends {
        snapcodeImageUrl?: string | undefined;
        snapcodeDeeplink?: string | undefined;
    } & {
        snapcodeImageUrl?: string | undefined;
        snapcodeDeeplink?: string | undefined;
    } & Record<Exclude<keyof I, keyof Scannable>, never>>(object: I): Scannable;
};
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 {
    $case: string;
} ? {
    [K in keyof Omit<T, "$case">]?: DeepPartial<T[K]>;
} & {
    $case: T["$case"];
} : 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=lens.d.ts.map