import _m0 from "protobufjs/minimal";
import { Namespace } from "./namespace";
import { BenchmarkResult } from "./benchmark";
import { Ruid } from "../../common/ruid";
export declare const protobufPackage = "snapchat.cdp.cof";
export declare enum ConfigTargetingTriggerEventType {
    UNKNOWN_EVENT_TYPE = 0,
    COLD_START = 1,
    WARM_START = 2,
    FOREGROUND_TRIGGER = 3,
    BACKGROUND_TRIGGER = 4,
    UNRECOGNIZED = -1
}
export declare enum ConfigTargetingAppState {
    UNKNOWN_APP_STATE = 0,
    FOREGROUND = 1,
    BACKGROUND = 2,
    UNRECOGNIZED = -1
}
export declare enum ConfigTargetingInstrumentation {
    DEFAULT_INSTRUMENTATION = 0,
    USER_AUTHENTICATION = 1,
    UNRECOGNIZED = -1
}
export interface ConfigTargetingRequest {
    configResultsEtag: string;
    namespaces: Namespace[];
    ghostId: string;
    countryCode: string;
    screenWidth: number;
    screenHeight: number;
    connectivity: Connectivity | undefined;
    maxVideoWidthPx: number;
    maxVideoHeightPx: number;
    benchmarkResults: BenchmarkResult[];
    deltaSync: boolean;
    userAgent: string;
    triggerEventType: ConfigTargetingTriggerEventType;
    appState: ConfigTargetingAppState;
    locale: string;
    deviceId: string;
    userId: string;
    clientIp: string;
    isUnAuthorized: boolean;
    appLocale: string;
    instrumentation: ConfigTargetingInstrumentation;
    lastSuccessfulSync: string;
    isLogout: boolean;
    packageInstaller: string;
    syncTriggerBlizzardSessionId: string;
    syncExecutionBlizzardSessionId: string;
    cofSyncTriggerDelayFromStartupMs: number;
    cofSyncExecutionDelayFromStartupMs: number;
    syncTriggerTime: string;
    decoderEncoderAvailability: DecoderEncoderAvailablity | undefined;
    snapkitAppId: string;
    lenscoreVersion: number;
    ruid: Ruid | undefined;
    configNames: string[];
    includeTestUserTreatments: boolean;
    disableExposureLogging: boolean;
    lensClusterOrig4: number;
    clientId: string;
    propertyOverrides: PropertyOverrides | undefined;
    forLockscreenMode: boolean;
}
export interface PropertyOverrides {
    isWeb: boolean;
}
export interface Connectivity {
    networkType: Connectivity_NetworkType;
    isMetered: boolean | undefined;
    isRoaming: boolean | undefined;
    carrier: string;
}
export declare enum Connectivity_NetworkType {
    UNKNOWN_NETWORK_TYPE = 0,
    CELLULAR = 1,
    WIFI = 2,
    UNRECOGNIZED = -1
}
export interface DecoderEncoderAvailablity {
    isSnapVp9DecoderAvailable: boolean;
    isSnapAv1DecoderAvailable: boolean;
}
export declare const ConfigTargetingRequest: {
    encode(message: ConfigTargetingRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ConfigTargetingRequest;
    fromPartial<I extends {
        configResultsEtag?: string | undefined;
        namespaces?: Namespace[] | undefined;
        ghostId?: string | undefined;
        countryCode?: string | undefined;
        screenWidth?: number | undefined;
        screenHeight?: number | undefined;
        connectivity?: {
            networkType?: Connectivity_NetworkType | undefined;
            isMetered?: boolean | undefined;
            isRoaming?: boolean | undefined;
            carrier?: string | undefined;
        } | undefined;
        maxVideoWidthPx?: number | undefined;
        maxVideoHeightPx?: number | undefined;
        benchmarkResults?: {
            name?: import("./benchmark_name").BenchmarkName | undefined;
            value?: {
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } | undefined;
        }[] | undefined;
        deltaSync?: boolean | undefined;
        userAgent?: string | undefined;
        triggerEventType?: ConfigTargetingTriggerEventType | undefined;
        appState?: ConfigTargetingAppState | undefined;
        locale?: string | undefined;
        deviceId?: string | undefined;
        userId?: string | undefined;
        clientIp?: string | undefined;
        isUnAuthorized?: boolean | undefined;
        appLocale?: string | undefined;
        instrumentation?: ConfigTargetingInstrumentation | undefined;
        lastSuccessfulSync?: string | undefined;
        isLogout?: boolean | undefined;
        packageInstaller?: string | undefined;
        syncTriggerBlizzardSessionId?: string | undefined;
        syncExecutionBlizzardSessionId?: string | undefined;
        cofSyncTriggerDelayFromStartupMs?: number | undefined;
        cofSyncExecutionDelayFromStartupMs?: number | undefined;
        syncTriggerTime?: string | undefined;
        decoderEncoderAvailability?: {
            isSnapVp9DecoderAvailable?: boolean | undefined;
            isSnapAv1DecoderAvailable?: boolean | undefined;
        } | undefined;
        snapkitAppId?: string | undefined;
        lenscoreVersion?: number | undefined;
        ruid?: {
            type?: import("../../common/ruid").Ruid_Type | undefined;
            stringValue?: string | undefined;
            loggingIdValue?: string | undefined;
        } | undefined;
        configNames?: string[] | undefined;
        includeTestUserTreatments?: boolean | undefined;
        disableExposureLogging?: boolean | undefined;
        lensClusterOrig4?: number | undefined;
        clientId?: string | undefined;
        propertyOverrides?: {
            isWeb?: boolean | undefined;
        } | undefined;
        forLockscreenMode?: boolean | undefined;
    } & {
        configResultsEtag?: string | undefined;
        namespaces?: (Namespace[] & Namespace[] & Record<Exclude<keyof I["namespaces"], keyof Namespace[]>, never>) | undefined;
        ghostId?: string | undefined;
        countryCode?: string | undefined;
        screenWidth?: number | undefined;
        screenHeight?: number | undefined;
        connectivity?: ({
            networkType?: Connectivity_NetworkType | undefined;
            isMetered?: boolean | undefined;
            isRoaming?: boolean | undefined;
            carrier?: string | undefined;
        } & {
            networkType?: Connectivity_NetworkType | undefined;
            isMetered?: boolean | undefined;
            isRoaming?: boolean | undefined;
            carrier?: string | undefined;
        } & Record<Exclude<keyof I["connectivity"], keyof Connectivity>, never>) | undefined;
        maxVideoWidthPx?: number | undefined;
        maxVideoHeightPx?: number | undefined;
        benchmarkResults?: ({
            name?: import("./benchmark_name").BenchmarkName | undefined;
            value?: {
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } | undefined;
        }[] & ({
            name?: import("./benchmark_name").BenchmarkName | undefined;
            value?: {
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } | undefined;
        } & {
            name?: import("./benchmark_name").BenchmarkName | undefined;
            value?: ({
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } & {
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } & Record<Exclude<keyof I["benchmarkResults"][number]["value"], keyof import("./benchmark").BenchmarkValue>, never>) | undefined;
        } & Record<Exclude<keyof I["benchmarkResults"][number], keyof BenchmarkResult>, never>)[] & Record<Exclude<keyof I["benchmarkResults"], keyof {
            name?: import("./benchmark_name").BenchmarkName | undefined;
            value?: {
                intValue?: number | undefined;
                longValue?: string | undefined;
                boolValue?: boolean | undefined;
                floatValue?: number | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        deltaSync?: boolean | undefined;
        userAgent?: string | undefined;
        triggerEventType?: ConfigTargetingTriggerEventType | undefined;
        appState?: ConfigTargetingAppState | undefined;
        locale?: string | undefined;
        deviceId?: string | undefined;
        userId?: string | undefined;
        clientIp?: string | undefined;
        isUnAuthorized?: boolean | undefined;
        appLocale?: string | undefined;
        instrumentation?: ConfigTargetingInstrumentation | undefined;
        lastSuccessfulSync?: string | undefined;
        isLogout?: boolean | undefined;
        packageInstaller?: string | undefined;
        syncTriggerBlizzardSessionId?: string | undefined;
        syncExecutionBlizzardSessionId?: string | undefined;
        cofSyncTriggerDelayFromStartupMs?: number | undefined;
        cofSyncExecutionDelayFromStartupMs?: number | undefined;
        syncTriggerTime?: string | undefined;
        decoderEncoderAvailability?: ({
            isSnapVp9DecoderAvailable?: boolean | undefined;
            isSnapAv1DecoderAvailable?: boolean | undefined;
        } & {
            isSnapVp9DecoderAvailable?: boolean | undefined;
            isSnapAv1DecoderAvailable?: boolean | undefined;
        } & Record<Exclude<keyof I["decoderEncoderAvailability"], keyof DecoderEncoderAvailablity>, never>) | undefined;
        snapkitAppId?: string | undefined;
        lenscoreVersion?: number | undefined;
        ruid?: ({
            type?: import("../../common/ruid").Ruid_Type | undefined;
            stringValue?: string | undefined;
            loggingIdValue?: string | undefined;
        } & {
            type?: import("../../common/ruid").Ruid_Type | undefined;
            stringValue?: string | undefined;
            loggingIdValue?: string | undefined;
        } & Record<Exclude<keyof I["ruid"], keyof Ruid>, never>) | undefined;
        configNames?: (string[] & string[] & Record<Exclude<keyof I["configNames"], keyof string[]>, never>) | undefined;
        includeTestUserTreatments?: boolean | undefined;
        disableExposureLogging?: boolean | undefined;
        lensClusterOrig4?: number | undefined;
        clientId?: string | undefined;
        propertyOverrides?: ({
            isWeb?: boolean | undefined;
        } & {
            isWeb?: boolean | undefined;
        } & Record<Exclude<keyof I["propertyOverrides"], "isWeb">, never>) | undefined;
        forLockscreenMode?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof ConfigTargetingRequest>, never>>(object: I): ConfigTargetingRequest;
};
export declare const PropertyOverrides: {
    encode(message: PropertyOverrides, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): PropertyOverrides;
    fromPartial<I extends {
        isWeb?: boolean | undefined;
    } & {
        isWeb?: boolean | undefined;
    } & Record<Exclude<keyof I, "isWeb">, never>>(object: I): PropertyOverrides;
};
export declare const Connectivity: {
    encode(message: Connectivity, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): Connectivity;
    fromPartial<I extends {
        networkType?: Connectivity_NetworkType | undefined;
        isMetered?: boolean | undefined;
        isRoaming?: boolean | undefined;
        carrier?: string | undefined;
    } & {
        networkType?: Connectivity_NetworkType | undefined;
        isMetered?: boolean | undefined;
        isRoaming?: boolean | undefined;
        carrier?: string | undefined;
    } & Record<Exclude<keyof I, keyof Connectivity>, never>>(object: I): Connectivity;
};
export declare const DecoderEncoderAvailablity: {
    encode(message: DecoderEncoderAvailablity, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DecoderEncoderAvailablity;
    fromPartial<I extends {
        isSnapVp9DecoderAvailable?: boolean | undefined;
        isSnapAv1DecoderAvailable?: boolean | undefined;
    } & {
        isSnapVp9DecoderAvailable?: boolean | undefined;
        isSnapAv1DecoderAvailable?: boolean | undefined;
    } & Record<Exclude<keyof I, keyof DecoderEncoderAvailablity>, never>>(object: I): DecoderEncoderAvailablity;
};
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=config_request.d.ts.map