import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "snapchat.lenses.snappable";
export interface EncryptionData {
    key: Uint8Array;
    ivStore: {
        [key: string]: Uint8Array;
    };
    isKeyServerEncrypted: boolean;
    isKeyE2eEncrypted: boolean;
    encryptionScheme: EncryptionData_EncryptionScheme;
}
export declare enum EncryptionData_EncryptionScheme {
    NOT_APPLICABLE = "NOT_APPLICABLE",
    SPOOKEY = "SPOOKEY",
    REGISTRY = "REGISTRY",
    FIDELIUS = "FIDELIUS",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function encryptionData_EncryptionSchemeFromJSON(object: any): EncryptionData_EncryptionScheme;
export declare function encryptionData_EncryptionSchemeToNumber(object: EncryptionData_EncryptionScheme): number;
export interface EncryptionData_IvStoreEntry {
    key: string;
    value: Uint8Array;
}
export interface PlayerData {
    store: {
        [key: string]: string;
    };
    serializedStore: Uint8Array;
}
export interface PlayerData_StoreEntry {
    key: string;
    value: string;
}
export interface SessionData {
    playerData: {
        [key: string]: PlayerData;
    };
}
export interface SessionData_PlayerDataEntry {
    key: string;
    value: PlayerData | undefined;
}
export interface SnappableMedia {
    sessionId: string;
    playerId: string;
    url: string;
    key: string;
    createdTime: string;
}
export interface Snap3DData {
    allowZippedMedia: boolean;
}
export interface UsesCameraRoll {
    usesCameraRoll: boolean;
}
export interface SnappableMessage {
    snappable: Snappable | undefined;
    media: SnappableMedia[];
    effectId: string;
    userIds: string[];
    focusPointX: number;
    focusPointY: number;
    focusPointWidth: number;
    replyType: SnappableMessage_ReplyType;
    snap3dData: Snap3DData | undefined;
    usesCameraRollData: UsesCameraRoll | undefined;
    assetBatchId: string;
}
export declare enum SnappableMessage_ReplyType {
    NOT_APPLICABLE = "NOT_APPLICABLE",
    CONTEXT = "CONTEXT",
    INTERSTITIAL = "INTERSTITIAL",
    UNRECOGNIZED = "UNRECOGNIZED"
}
export declare function snappableMessage_ReplyTypeFromJSON(object: any): SnappableMessage_ReplyType;
export declare function snappableMessage_ReplyTypeToNumber(object: SnappableMessage_ReplyType): number;
export interface Snappable {
    id: string;
    sessionId: string;
    playerId: string;
    sessionData: SessionData | undefined;
    createdTime: string;
    expireTime: string;
    version: number;
    encryptionData: EncryptionData | undefined;
    sessionDepth: number;
}
export interface PutSnappableRequest {
    snappable: Snappable | undefined;
    media: SnappableMedia[];
}
export interface PutSnappableResponse {
    id: string;
}
export interface GetSnappableRequest {
    id: string;
}
export interface GetSnappableResponse {
    data: Snappable | undefined;
    media: SnappableMedia[];
}
export interface SnappableEncryptedKey {
    encryptedKey: Uint8Array;
    encryptionKeyId: string;
    encryptionKeyIv: Uint8Array;
}
export declare const EncryptionData: {
    encode(message: EncryptionData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EncryptionData;
    fromPartial<I extends {
        key?: Uint8Array | undefined;
        ivStore?: {
            [x: string]: Uint8Array | undefined;
        } | undefined;
        isKeyServerEncrypted?: boolean | undefined;
        isKeyE2eEncrypted?: boolean | undefined;
        encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
    } & {
        key?: Uint8Array | undefined;
        ivStore?: ({
            [x: string]: Uint8Array | undefined;
        } & {
            [x: string]: Uint8Array | undefined;
        } & Record<Exclude<keyof I["ivStore"], string | number>, never>) | undefined;
        isKeyServerEncrypted?: boolean | undefined;
        isKeyE2eEncrypted?: boolean | undefined;
        encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
    } & Record<Exclude<keyof I, keyof EncryptionData>, never>>(object: I): EncryptionData;
};
export declare const EncryptionData_IvStoreEntry: {
    encode(message: EncryptionData_IvStoreEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): EncryptionData_IvStoreEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: Uint8Array | undefined;
    } & {
        key?: string | undefined;
        value?: Uint8Array | undefined;
    } & Record<Exclude<keyof I, keyof EncryptionData_IvStoreEntry>, never>>(object: I): EncryptionData_IvStoreEntry;
};
export declare const PlayerData: {
    encode(message: PlayerData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlayerData;
    fromPartial<I extends {
        store?: {
            [x: string]: string | undefined;
        } | undefined;
        serializedStore?: Uint8Array | undefined;
    } & {
        store?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["store"], string | number>, never>) | undefined;
        serializedStore?: Uint8Array | undefined;
    } & Record<Exclude<keyof I, keyof PlayerData>, never>>(object: I): PlayerData;
};
export declare const PlayerData_StoreEntry: {
    encode(message: PlayerData_StoreEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PlayerData_StoreEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof PlayerData_StoreEntry>, never>>(object: I): PlayerData_StoreEntry;
};
export declare const SessionData: {
    encode(message: SessionData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SessionData;
    fromPartial<I extends {
        playerData?: {
            [x: string]: {
                store?: {
                    [x: string]: string | undefined;
                } | undefined;
                serializedStore?: Uint8Array | undefined;
            } | undefined;
        } | undefined;
    } & {
        playerData?: ({
            [x: string]: {
                store?: {
                    [x: string]: string | undefined;
                } | undefined;
                serializedStore?: Uint8Array | undefined;
            } | undefined;
        } & {
            [x: string]: ({
                store?: {
                    [x: string]: string | undefined;
                } | undefined;
                serializedStore?: Uint8Array | undefined;
            } & {
                store?: ({
                    [x: string]: string | undefined;
                } & {
                    [x: string]: string | undefined;
                } & Record<Exclude<keyof I["playerData"][string]["store"], string | number>, never>) | undefined;
                serializedStore?: Uint8Array | undefined;
            } & Record<Exclude<keyof I["playerData"][string], keyof PlayerData>, never>) | undefined;
        } & Record<Exclude<keyof I["playerData"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, "playerData">, never>>(object: I): SessionData;
};
export declare const SessionData_PlayerDataEntry: {
    encode(message: SessionData_PlayerDataEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SessionData_PlayerDataEntry;
    fromPartial<I extends {
        key?: string | undefined;
        value?: {
            store?: {
                [x: string]: string | undefined;
            } | undefined;
            serializedStore?: Uint8Array | undefined;
        } | undefined;
    } & {
        key?: string | undefined;
        value?: ({
            store?: {
                [x: string]: string | undefined;
            } | undefined;
            serializedStore?: Uint8Array | undefined;
        } & {
            store?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["value"]["store"], string | number>, never>) | undefined;
            serializedStore?: Uint8Array | undefined;
        } & Record<Exclude<keyof I["value"], keyof PlayerData>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof SessionData_PlayerDataEntry>, never>>(object: I): SessionData_PlayerDataEntry;
};
export declare const SnappableMedia: {
    encode(message: SnappableMedia, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SnappableMedia;
    fromPartial<I extends {
        sessionId?: string | undefined;
        playerId?: string | undefined;
        url?: string | undefined;
        key?: string | undefined;
        createdTime?: string | undefined;
    } & {
        sessionId?: string | undefined;
        playerId?: string | undefined;
        url?: string | undefined;
        key?: string | undefined;
        createdTime?: string | undefined;
    } & Record<Exclude<keyof I, keyof SnappableMedia>, never>>(object: I): SnappableMedia;
};
export declare const Snap3DData: {
    encode(message: Snap3DData, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Snap3DData;
    fromPartial<I extends {
        allowZippedMedia?: boolean | undefined;
    } & {
        allowZippedMedia?: boolean | undefined;
    } & Record<Exclude<keyof I, "allowZippedMedia">, never>>(object: I): Snap3DData;
};
export declare const UsesCameraRoll: {
    encode(message: UsesCameraRoll, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UsesCameraRoll;
    fromPartial<I extends {
        usesCameraRoll?: boolean | undefined;
    } & {
        usesCameraRoll?: boolean | undefined;
    } & Record<Exclude<keyof I, "usesCameraRoll">, never>>(object: I): UsesCameraRoll;
};
export declare const SnappableMessage: {
    encode(message: SnappableMessage, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SnappableMessage;
    fromPartial<I extends {
        snappable?: {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } | undefined;
        media?: {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] | undefined;
        effectId?: string | undefined;
        userIds?: string[] | undefined;
        focusPointX?: number | undefined;
        focusPointY?: number | undefined;
        focusPointWidth?: number | undefined;
        replyType?: SnappableMessage_ReplyType | undefined;
        snap3dData?: {
            allowZippedMedia?: boolean | undefined;
        } | undefined;
        usesCameraRollData?: {
            usesCameraRoll?: boolean | undefined;
        } | undefined;
        assetBatchId?: string | undefined;
    } & {
        snappable?: ({
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } & {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: ({
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } & {
                playerData?: ({
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & {
                        store?: ({
                            [x: string]: string | undefined;
                        } & {
                            [x: string]: string | undefined;
                        } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"][string]["store"], string | number>, never>) | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"][string], keyof PlayerData>, never>) | undefined;
                } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["snappable"]["sessionData"], "playerData">, never>) | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: ({
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & {
                key?: Uint8Array | undefined;
                ivStore?: ({
                    [x: string]: Uint8Array | undefined;
                } & {
                    [x: string]: Uint8Array | undefined;
                } & Record<Exclude<keyof I["snappable"]["encryptionData"]["ivStore"], string | number>, never>) | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & Record<Exclude<keyof I["snappable"]["encryptionData"], keyof EncryptionData>, never>) | undefined;
            sessionDepth?: number | undefined;
        } & Record<Exclude<keyof I["snappable"], keyof Snappable>, never>) | undefined;
        media?: ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] & ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & Record<Exclude<keyof I["media"][number], keyof SnappableMedia>, never>)[] & Record<Exclude<keyof I["media"], keyof {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[]>, never>) | undefined;
        effectId?: string | undefined;
        userIds?: (string[] & string[] & Record<Exclude<keyof I["userIds"], keyof string[]>, never>) | undefined;
        focusPointX?: number | undefined;
        focusPointY?: number | undefined;
        focusPointWidth?: number | undefined;
        replyType?: SnappableMessage_ReplyType | undefined;
        snap3dData?: ({
            allowZippedMedia?: boolean | undefined;
        } & {
            allowZippedMedia?: boolean | undefined;
        } & Record<Exclude<keyof I["snap3dData"], "allowZippedMedia">, never>) | undefined;
        usesCameraRollData?: ({
            usesCameraRoll?: boolean | undefined;
        } & {
            usesCameraRoll?: boolean | undefined;
        } & Record<Exclude<keyof I["usesCameraRollData"], "usesCameraRoll">, never>) | undefined;
        assetBatchId?: string | undefined;
    } & Record<Exclude<keyof I, keyof SnappableMessage>, never>>(object: I): SnappableMessage;
};
export declare const Snappable: {
    encode(message: Snappable, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Snappable;
    fromPartial<I extends {
        id?: string | undefined;
        sessionId?: string | undefined;
        playerId?: string | undefined;
        sessionData?: {
            playerData?: {
                [x: string]: {
                    store?: {
                        [x: string]: string | undefined;
                    } | undefined;
                    serializedStore?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
        } | undefined;
        createdTime?: string | undefined;
        expireTime?: string | undefined;
        version?: number | undefined;
        encryptionData?: {
            key?: Uint8Array | undefined;
            ivStore?: {
                [x: string]: Uint8Array | undefined;
            } | undefined;
            isKeyServerEncrypted?: boolean | undefined;
            isKeyE2eEncrypted?: boolean | undefined;
            encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
        } | undefined;
        sessionDepth?: number | undefined;
    } & {
        id?: string | undefined;
        sessionId?: string | undefined;
        playerId?: string | undefined;
        sessionData?: ({
            playerData?: {
                [x: string]: {
                    store?: {
                        [x: string]: string | undefined;
                    } | undefined;
                    serializedStore?: Uint8Array | undefined;
                } | undefined;
            } | undefined;
        } & {
            playerData?: ({
                [x: string]: {
                    store?: {
                        [x: string]: string | undefined;
                    } | undefined;
                    serializedStore?: Uint8Array | undefined;
                } | undefined;
            } & {
                [x: string]: ({
                    store?: {
                        [x: string]: string | undefined;
                    } | undefined;
                    serializedStore?: Uint8Array | undefined;
                } & {
                    store?: ({
                        [x: string]: string | undefined;
                    } & {
                        [x: string]: string | undefined;
                    } & Record<Exclude<keyof I["sessionData"]["playerData"][string]["store"], string | number>, never>) | undefined;
                    serializedStore?: Uint8Array | undefined;
                } & Record<Exclude<keyof I["sessionData"]["playerData"][string], keyof PlayerData>, never>) | undefined;
            } & Record<Exclude<keyof I["sessionData"]["playerData"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["sessionData"], "playerData">, never>) | undefined;
        createdTime?: string | undefined;
        expireTime?: string | undefined;
        version?: number | undefined;
        encryptionData?: ({
            key?: Uint8Array | undefined;
            ivStore?: {
                [x: string]: Uint8Array | undefined;
            } | undefined;
            isKeyServerEncrypted?: boolean | undefined;
            isKeyE2eEncrypted?: boolean | undefined;
            encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
        } & {
            key?: Uint8Array | undefined;
            ivStore?: ({
                [x: string]: Uint8Array | undefined;
            } & {
                [x: string]: Uint8Array | undefined;
            } & Record<Exclude<keyof I["encryptionData"]["ivStore"], string | number>, never>) | undefined;
            isKeyServerEncrypted?: boolean | undefined;
            isKeyE2eEncrypted?: boolean | undefined;
            encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
        } & Record<Exclude<keyof I["encryptionData"], keyof EncryptionData>, never>) | undefined;
        sessionDepth?: number | undefined;
    } & Record<Exclude<keyof I, keyof Snappable>, never>>(object: I): Snappable;
};
export declare const PutSnappableRequest: {
    encode(message: PutSnappableRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PutSnappableRequest;
    fromPartial<I extends {
        snappable?: {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } | undefined;
        media?: {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] | undefined;
    } & {
        snappable?: ({
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } & {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: ({
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } & {
                playerData?: ({
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & {
                        store?: ({
                            [x: string]: string | undefined;
                        } & {
                            [x: string]: string | undefined;
                        } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"][string]["store"], string | number>, never>) | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"][string], keyof PlayerData>, never>) | undefined;
                } & Record<Exclude<keyof I["snappable"]["sessionData"]["playerData"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["snappable"]["sessionData"], "playerData">, never>) | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: ({
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & {
                key?: Uint8Array | undefined;
                ivStore?: ({
                    [x: string]: Uint8Array | undefined;
                } & {
                    [x: string]: Uint8Array | undefined;
                } & Record<Exclude<keyof I["snappable"]["encryptionData"]["ivStore"], string | number>, never>) | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & Record<Exclude<keyof I["snappable"]["encryptionData"], keyof EncryptionData>, never>) | undefined;
            sessionDepth?: number | undefined;
        } & Record<Exclude<keyof I["snappable"], keyof Snappable>, never>) | undefined;
        media?: ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] & ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & Record<Exclude<keyof I["media"][number], keyof SnappableMedia>, never>)[] & Record<Exclude<keyof I["media"], keyof {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof PutSnappableRequest>, never>>(object: I): PutSnappableRequest;
};
export declare const PutSnappableResponse: {
    encode(message: PutSnappableResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PutSnappableResponse;
    fromPartial<I extends {
        id?: string | undefined;
    } & {
        id?: string | undefined;
    } & Record<Exclude<keyof I, "id">, never>>(object: I): PutSnappableResponse;
};
export declare const GetSnappableRequest: {
    encode(message: GetSnappableRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetSnappableRequest;
    fromPartial<I extends {
        id?: string | undefined;
    } & {
        id?: string | undefined;
    } & Record<Exclude<keyof I, "id">, never>>(object: I): GetSnappableRequest;
};
export declare const GetSnappableResponse: {
    encode(message: GetSnappableResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetSnappableResponse;
    fromPartial<I extends {
        data?: {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } | undefined;
        media?: {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] | undefined;
    } & {
        data?: ({
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: {
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: {
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } | undefined;
            sessionDepth?: number | undefined;
        } & {
            id?: string | undefined;
            sessionId?: string | undefined;
            playerId?: string | undefined;
            sessionData?: ({
                playerData?: {
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } | undefined;
            } & {
                playerData?: ({
                    [x: string]: {
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        store?: {
                            [x: string]: string | undefined;
                        } | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & {
                        store?: ({
                            [x: string]: string | undefined;
                        } & {
                            [x: string]: string | undefined;
                        } & Record<Exclude<keyof I["data"]["sessionData"]["playerData"][string]["store"], string | number>, never>) | undefined;
                        serializedStore?: Uint8Array | undefined;
                    } & Record<Exclude<keyof I["data"]["sessionData"]["playerData"][string], keyof PlayerData>, never>) | undefined;
                } & Record<Exclude<keyof I["data"]["sessionData"]["playerData"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["data"]["sessionData"], "playerData">, never>) | undefined;
            createdTime?: string | undefined;
            expireTime?: string | undefined;
            version?: number | undefined;
            encryptionData?: ({
                key?: Uint8Array | undefined;
                ivStore?: {
                    [x: string]: Uint8Array | undefined;
                } | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & {
                key?: Uint8Array | undefined;
                ivStore?: ({
                    [x: string]: Uint8Array | undefined;
                } & {
                    [x: string]: Uint8Array | undefined;
                } & Record<Exclude<keyof I["data"]["encryptionData"]["ivStore"], string | number>, never>) | undefined;
                isKeyServerEncrypted?: boolean | undefined;
                isKeyE2eEncrypted?: boolean | undefined;
                encryptionScheme?: EncryptionData_EncryptionScheme | undefined;
            } & Record<Exclude<keyof I["data"]["encryptionData"], keyof EncryptionData>, never>) | undefined;
            sessionDepth?: number | undefined;
        } & Record<Exclude<keyof I["data"], keyof Snappable>, never>) | undefined;
        media?: ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[] & ({
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        } & Record<Exclude<keyof I["media"][number], keyof SnappableMedia>, never>)[] & Record<Exclude<keyof I["media"], keyof {
            sessionId?: string | undefined;
            playerId?: string | undefined;
            url?: string | undefined;
            key?: string | undefined;
            createdTime?: string | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof GetSnappableResponse>, never>>(object: I): GetSnappableResponse;
};
export declare const SnappableEncryptedKey: {
    encode(message: SnappableEncryptedKey, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SnappableEncryptedKey;
    fromPartial<I extends {
        encryptedKey?: Uint8Array | undefined;
        encryptionKeyId?: string | undefined;
        encryptionKeyIv?: Uint8Array | undefined;
    } & {
        encryptedKey?: Uint8Array | undefined;
        encryptionKeyId?: string | undefined;
        encryptionKeyIv?: Uint8Array | undefined;
    } & Record<Exclude<keyof I, keyof SnappableEncryptedKey>, never>>(object: I): SnappableEncryptedKey;
};
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=snappable.d.ts.map