import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
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: MessageFns<Lens>;
export declare const Lens_VendorDataEntry: MessageFns<Lens_VendorDataEntry>;
export declare const Content: MessageFns<Content>;
export declare const Content_HintTranslationsEntry: MessageFns<Content_HintTranslationsEntry>;
export declare const LensAssetManifestItem: MessageFns<LensAssetManifestItem>;
export declare const Preview: MessageFns<Preview>;
export declare const LensCreator: MessageFns<LensCreator>;
export declare const Scannable: MessageFns<Scannable>;
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 {
    $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]>;
} & {
    [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=lens.d.ts.map