import _m0 from "protobufjs/minimal";
export declare const protobufPackage = "com.snap.camerakit.v3";
export interface OperationalMetric {
    name: string;
    timestamp: Date | undefined;
    metric?: {
        $case: "count";
        count: string;
    } | {
        $case: "latencyMillis";
        latencyMillis: string;
    } | {
        $case: "histogram";
        histogram: string;
    };
}
export interface OperationalMetricsBundle {
    metrics: OperationalMetric[];
}
export declare const OperationalMetric: {
    encode(message: OperationalMetric, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OperationalMetric;
    fromPartial<I extends {
        name?: string | undefined;
        timestamp?: Date | undefined;
        metric?: ({
            count?: string | undefined;
        } & {
            $case: "count";
        }) | ({
            latencyMillis?: string | undefined;
        } & {
            $case: "latencyMillis";
        }) | ({
            histogram?: string | undefined;
        } & {
            $case: "histogram";
        }) | undefined;
    } & {
        name?: string | undefined;
        timestamp?: Date | undefined;
        metric?: ({
            count?: string | undefined;
        } & {
            $case: "count";
        } & {
            count?: string | undefined;
            $case: "count";
        } & Record<Exclude<keyof I["metric"], "$case" | "count">, never>) | ({
            latencyMillis?: string | undefined;
        } & {
            $case: "latencyMillis";
        } & {
            latencyMillis?: string | undefined;
            $case: "latencyMillis";
        } & Record<Exclude<keyof I["metric"], "$case" | "latencyMillis">, never>) | ({
            histogram?: string | undefined;
        } & {
            $case: "histogram";
        } & {
            histogram?: string | undefined;
            $case: "histogram";
        } & Record<Exclude<keyof I["metric"], "$case" | "histogram">, never>) | undefined;
    } & Record<Exclude<keyof I, keyof OperationalMetric>, never>>(object: I): OperationalMetric;
};
export declare const OperationalMetricsBundle: {
    encode(message: OperationalMetricsBundle, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): OperationalMetricsBundle;
    fromPartial<I extends {
        metrics?: {
            name?: string | undefined;
            timestamp?: Date | undefined;
            metric?: ({
                count?: string | undefined;
            } & {
                $case: "count";
            }) | ({
                latencyMillis?: string | undefined;
            } & {
                $case: "latencyMillis";
            }) | ({
                histogram?: string | undefined;
            } & {
                $case: "histogram";
            }) | undefined;
        }[] | undefined;
    } & {
        metrics?: ({
            name?: string | undefined;
            timestamp?: Date | undefined;
            metric?: ({
                count?: string | undefined;
            } & {
                $case: "count";
            }) | ({
                latencyMillis?: string | undefined;
            } & {
                $case: "latencyMillis";
            }) | ({
                histogram?: string | undefined;
            } & {
                $case: "histogram";
            }) | undefined;
        }[] & ({
            name?: string | undefined;
            timestamp?: Date | undefined;
            metric?: ({
                count?: string | undefined;
            } & {
                $case: "count";
            }) | ({
                latencyMillis?: string | undefined;
            } & {
                $case: "latencyMillis";
            }) | ({
                histogram?: string | undefined;
            } & {
                $case: "histogram";
            }) | undefined;
        } & {
            name?: string | undefined;
            timestamp?: Date | undefined;
            metric?: ({
                count?: string | undefined;
            } & {
                $case: "count";
            } & {
                count?: string | undefined;
                $case: "count";
            } & Record<Exclude<keyof I["metrics"][number]["metric"], "$case" | "count">, never>) | ({
                latencyMillis?: string | undefined;
            } & {
                $case: "latencyMillis";
            } & {
                latencyMillis?: string | undefined;
                $case: "latencyMillis";
            } & Record<Exclude<keyof I["metrics"][number]["metric"], "$case" | "latencyMillis">, never>) | ({
                histogram?: string | undefined;
            } & {
                $case: "histogram";
            } & {
                histogram?: string | undefined;
                $case: "histogram";
            } & Record<Exclude<keyof I["metrics"][number]["metric"], "$case" | "histogram">, never>) | undefined;
        } & Record<Exclude<keyof I["metrics"][number], keyof OperationalMetric>, never>)[] & Record<Exclude<keyof I["metrics"], keyof {
            name?: string | undefined;
            timestamp?: Date | undefined;
            metric?: ({
                count?: string | undefined;
            } & {
                $case: "count";
            }) | ({
                latencyMillis?: string | undefined;
            } & {
                $case: "latencyMillis";
            }) | ({
                histogram?: string | undefined;
            } & {
                $case: "histogram";
            }) | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "metrics">, never>>(object: I): OperationalMetricsBundle;
};
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=operational_metrics.d.ts.map