import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file protos/perfetto/trace_processor/metrics_impl.proto.
 */
export declare const file_protos_perfetto_trace_processor_metrics_impl: GenFile;
/**
 * The wrapping result of any metric builder function in trace processor. This
 * is an internal implementation detail of trace processor so should not be
 * relied on.
 *
 * @generated from message perfetto.protos.ProtoBuilderResult
 */
export type ProtoBuilderResult = Message<"perfetto.protos.ProtoBuilderResult"> & {
    /**
     * Whether the result is a singular proto builder result or the result of
     * a repeated field builder.
     *
     * @generated from field: optional bool is_repeated = 1;
     */
    isRepeated: boolean;
    /**
     * @generated from oneof perfetto.protos.ProtoBuilderResult.result
     */
    result: {
        /**
         * @generated from field: perfetto.protos.SingleBuilderResult single = 2;
         */
        value: SingleBuilderResult;
        case: "single";
    } | {
        /**
         * @generated from field: perfetto.protos.RepeatedBuilderResult repeated = 3;
         */
        value: RepeatedBuilderResult;
        case: "repeated";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * Describes the message perfetto.protos.ProtoBuilderResult.
 * Use `create(ProtoBuilderResultSchema)` to create a new message.
 */
export declare const ProtoBuilderResultSchema: GenMessage<ProtoBuilderResult>;
/**
 * The result of a repeated field function for a metric proto in trace
 * processor. This is an internal implementation detail of trace processor so
 * should not be relied on.
 *
 * @generated from message perfetto.protos.RepeatedBuilderResult
 */
export type RepeatedBuilderResult = Message<"perfetto.protos.RepeatedBuilderResult"> & {
    /**
     * @generated from field: repeated sfixed64 int_values = 1 [packed = true];
     */
    intValues: bigint[];
    /**
     * @generated from field: repeated double double_values = 2 [packed = true];
     */
    doubleValues: number[];
    /**
     * @generated from field: repeated string string_values = 3;
     */
    stringValues: string[];
    /**
     * @generated from field: repeated bytes byte_values = 4;
     */
    byteValues: Uint8Array[];
};
/**
 * Describes the message perfetto.protos.RepeatedBuilderResult.
 * Use `create(RepeatedBuilderResultSchema)` to create a new message.
 */
export declare const RepeatedBuilderResultSchema: GenMessage<RepeatedBuilderResult>;
/**
 * The result of a builder function for a metric proto in trace processor. This
 * is an internal implementation detail of trace processor so should not be
 * relied on.
 *
 * @generated from message perfetto.protos.SingleBuilderResult
 */
export type SingleBuilderResult = Message<"perfetto.protos.SingleBuilderResult"> & {
    /**
     * The type of the result. The possible values are given by
     * FieldDescriptorProto::Type.
     *
     * @generated from field: optional uint32 type = 1;
     */
    type: number;
    /**
     * The type name of the result if the result is a message or enum type.
     *
     * @generated from field: optional string type_name = 2;
     */
    typeName: string;
    /**
     * The raw proto bytes of a message.
     *
     * @generated from field: optional bytes protobuf = 3;
     */
    protobuf: Uint8Array;
};
/**
 * Describes the message perfetto.protos.SingleBuilderResult.
 * Use `create(SingleBuilderResultSchema)` to create a new message.
 */
export declare const SingleBuilderResultSchema: GenMessage<SingleBuilderResult>;
//# sourceMappingURL=metrics_impl_pb.d.ts.map