import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { Any } from "../../google/protobuf/any";
import { ExtensionEventBase } from "./business_events";
import { LegalPrompt } from "./legal_prompt";
import { Lens } from "./lens";
import { OperationalMetricsBundle } from "./operational_metrics";
import { RankingData } from "./ranking";
export declare const protobufPackage = "com.snap.camerakit.v3";
export interface GetGroupRequest {
    id: string;
    rankingData: RankingData | undefined;
}
export interface GetGroupResponse {
    id: string;
    lenses: Lens[];
}
export interface GetGroupLensRequest {
    lensId: string;
    groupId: string;
}
export interface GetGroupLensResponse {
    lens: Lens | undefined;
    groupId: string;
}
export interface BatchGetGroupLensRequest {
    getRequests: GetGroupLensRequest[];
}
export interface BatchGetGroupLensResponse {
    getResponses: GetGroupLensResponse[];
}
export interface GetPlaceholderConfigRequest {
}
export interface GetPlaceholderConfigResponse {
    configs: {
        [key: string]: string;
    };
}
export interface GetPlaceholderConfigResponse_ConfigsEntry {
    key: string;
    value: string;
}
export interface GetInitializationConfigRequest {
}
export interface GetInitializationConfigResponse {
    appVendorUuidOptIn: boolean;
    watermarkEnabled: boolean;
    childrenProtectionActRestricted: boolean;
    legalPrompt: LegalPrompt | undefined;
}
export interface SetOperationalMetricsRequest {
    metrics: OperationalMetricsBundle | undefined;
}
export interface SetOperationalMetricsResponse {
}
export interface SetBusinessEventsRequest {
    batchEvents: Any | undefined;
}
export interface SetBusinessEventsResponse {
}
export interface SetExtensionBusinessEventsRequest {
    events: Any[];
    extensionEventBase: ExtensionEventBase | undefined;
}
export interface SetExtensionBusinessEventsResponse {
}
export declare const GetGroupRequest: MessageFns<GetGroupRequest>;
export declare const GetGroupResponse: MessageFns<GetGroupResponse>;
export declare const GetGroupLensRequest: MessageFns<GetGroupLensRequest>;
export declare const GetGroupLensResponse: MessageFns<GetGroupLensResponse>;
export declare const BatchGetGroupLensRequest: MessageFns<BatchGetGroupLensRequest>;
export declare const BatchGetGroupLensResponse: MessageFns<BatchGetGroupLensResponse>;
export declare const GetPlaceholderConfigRequest: MessageFns<GetPlaceholderConfigRequest>;
export declare const GetPlaceholderConfigResponse: MessageFns<GetPlaceholderConfigResponse>;
export declare const GetPlaceholderConfigResponse_ConfigsEntry: MessageFns<GetPlaceholderConfigResponse_ConfigsEntry>;
export declare const GetInitializationConfigRequest: MessageFns<GetInitializationConfigRequest>;
export declare const GetInitializationConfigResponse: MessageFns<GetInitializationConfigResponse>;
export declare const SetOperationalMetricsRequest: MessageFns<SetOperationalMetricsRequest>;
export declare const SetOperationalMetricsResponse: MessageFns<SetOperationalMetricsResponse>;
export declare const SetBusinessEventsRequest: MessageFns<SetBusinessEventsRequest>;
export declare const SetBusinessEventsResponse: MessageFns<SetBusinessEventsResponse>;
export declare const SetExtensionBusinessEventsRequest: MessageFns<SetExtensionBusinessEventsRequest>;
export declare const SetExtensionBusinessEventsResponse: MessageFns<SetExtensionBusinessEventsResponse>;
export type LensesDefinition = typeof LensesDefinition;
export declare const LensesDefinition: {
    readonly name: "Lenses";
    readonly fullName: "com.snap.camerakit.v3.Lenses";
    readonly methods: {
        readonly getGroup: {
            readonly name: "GetGroup";
            readonly requestType: MessageFns<GetGroupRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<GetGroupResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly idempotencyLevel: "NO_SIDE_EFFECTS";
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly getGroupLens: {
            readonly name: "GetGroupLens";
            readonly requestType: MessageFns<GetGroupLensRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<GetGroupLensResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly idempotencyLevel: "NO_SIDE_EFFECTS";
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly batchGetGroupLens: {
            readonly name: "BatchGetGroupLens";
            readonly requestType: MessageFns<BatchGetGroupLensRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<BatchGetGroupLensResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly idempotencyLevel: "NO_SIDE_EFFECTS";
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly getPlaceholderConfig: {
            readonly name: "GetPlaceholderConfig";
            readonly requestType: MessageFns<GetPlaceholderConfigRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<GetPlaceholderConfigResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly idempotencyLevel: "NO_SIDE_EFFECTS";
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
    };
};
export type MetricsDefinition = typeof MetricsDefinition;
export declare const MetricsDefinition: {
    readonly name: "Metrics";
    readonly fullName: "com.snap.camerakit.v3.Metrics";
    readonly methods: {
        readonly setOperationalMetrics: {
            readonly name: "SetOperationalMetrics";
            readonly requestType: MessageFns<SetOperationalMetricsRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<SetOperationalMetricsResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly setBusinessEvents: {
            readonly name: "SetBusinessEvents";
            readonly requestType: MessageFns<SetBusinessEventsRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<SetBusinessEventsResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly setExtensionBusinessEvents: {
            readonly name: "SetExtensionBusinessEvents";
            readonly requestType: MessageFns<SetExtensionBusinessEventsRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<SetExtensionBusinessEventsResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
        readonly getInitializationConfig: {
            readonly name: "GetInitializationConfig";
            readonly requestType: MessageFns<GetInitializationConfigRequest>;
            readonly requestStream: false;
            readonly responseType: MessageFns<GetInitializationConfigResponse>;
            readonly responseStream: false;
            readonly options: {
                readonly idempotencyLevel: "NO_SIDE_EFFECTS";
                readonly _unknownFields: {
                    readonly 578365826: readonly [Uint8Array];
                };
            };
        };
    };
};
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=service.d.ts.map