import type { GenEnum, GenExtension, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import type { FieldOptions } from "@bufbuild/protobuf/wkt";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file google/api/field_info.proto.
 */
export declare const file_google_api_field_info: GenFile;
/**
 * Rich semantic information of an API field beyond basic typing.
 *
 * @generated from message google.api.FieldInfo
 */
export type FieldInfo = Message<"google.api.FieldInfo"> & {
    /**
     * The standard format of a field value. This does not explicitly configure
     * any API consumer, just documents the API's format for the field it is
     * applied to.
     *
     * @generated from field: google.api.FieldInfo.Format format = 1;
     */
    format: FieldInfo_Format;
    /**
     * The type(s) that the annotated, generic field may represent.
     *
     * Currently, this must only be used on fields of type `google.protobuf.Any`.
     * Supporting other generic types may be considered in the future.
     *
     * @generated from field: repeated google.api.TypeReference referenced_types = 2;
     */
    referencedTypes: TypeReference[];
};
/**
 * Describes the message google.api.FieldInfo.
 * Use `create(FieldInfoSchema)` to create a new message.
 */
export declare const FieldInfoSchema: GenMessage<FieldInfo>;
/**
 * The standard format of a field value. The supported formats are all backed
 * by either an RFC defined by the IETF or a Google-defined AIP.
 *
 * @generated from enum google.api.FieldInfo.Format
 */
export declare enum FieldInfo_Format {
    /**
     * Default, unspecified value.
     *
     * @generated from enum value: FORMAT_UNSPECIFIED = 0;
     */
    FORMAT_UNSPECIFIED = 0,
    /**
     * Universally Unique Identifier, version 4, value as defined by
     * https://datatracker.ietf.org/doc/html/rfc4122. The value may be
     * normalized to entirely lowercase letters. For example, the value
     * `F47AC10B-58CC-0372-8567-0E02B2C3D479` would be normalized to
     * `f47ac10b-58cc-0372-8567-0e02b2c3d479`.
     *
     * @generated from enum value: UUID4 = 1;
     */
    UUID4 = 1,
    /**
     * Internet Protocol v4 value as defined by [RFC
     * 791](https://datatracker.ietf.org/doc/html/rfc791). The value may be
     * condensed, with leading zeros in each octet stripped. For example,
     * `001.022.233.040` would be condensed to `1.22.233.40`.
     *
     * @generated from enum value: IPV4 = 2;
     */
    IPV4 = 2,
    /**
     * Internet Protocol v6 value as defined by [RFC
     * 2460](https://datatracker.ietf.org/doc/html/rfc2460). The value may be
     * normalized to entirely lowercase letters with zeros compressed, following
     * [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952). For example,
     * the value `2001:0DB8:0::0` would be normalized to `2001:db8::`.
     *
     * @generated from enum value: IPV6 = 3;
     */
    IPV6 = 3,
    /**
     * An IP address in either v4 or v6 format as described by the individual
     * values defined herein. See the comments on the IPV4 and IPV6 types for
     * allowed normalizations of each.
     *
     * @generated from enum value: IPV4_OR_IPV6 = 4;
     */
    IPV4_OR_IPV6 = 4
}
/**
 * Describes the enum google.api.FieldInfo.Format.
 */
export declare const FieldInfo_FormatSchema: GenEnum<FieldInfo_Format>;
/**
 * A reference to a message type, for use in [FieldInfo][google.api.FieldInfo].
 *
 * @generated from message google.api.TypeReference
 */
export type TypeReference = Message<"google.api.TypeReference"> & {
    /**
     * The name of the type that the annotated, generic field may represent.
     * If the type is in the same protobuf package, the value can be the simple
     * message name e.g., `"MyMessage"`. Otherwise, the value must be the
     * fully-qualified message name e.g., `"google.library.v1.Book"`.
     *
     * If the type(s) are unknown to the service (e.g. the field accepts generic
     * user input), use the wildcard `"*"` to denote this behavior.
     *
     * See [AIP-202](https://google.aip.dev/202#type-references) for more details.
     *
     * @generated from field: string type_name = 1;
     */
    typeName: string;
};
/**
 * Describes the message google.api.TypeReference.
 * Use `create(TypeReferenceSchema)` to create a new message.
 */
export declare const TypeReferenceSchema: GenMessage<TypeReference>;
/**
 * Rich semantic descriptor of an API field beyond the basic typing.
 *
 * Examples:
 *
 *     string request_id = 1 [(google.api.field_info).format = UUID4];
 *     string old_ip_address = 2 [(google.api.field_info).format = IPV4];
 *     string new_ip_address = 3 [(google.api.field_info).format = IPV6];
 *     string actual_ip_address = 4 [
 *       (google.api.field_info).format = IPV4_OR_IPV6
 *     ];
 *     google.protobuf.Any generic_field = 5 [
 *       (google.api.field_info).referenced_types = {type_name: "ActualType"},
 *       (google.api.field_info).referenced_types = {type_name: "OtherType"},
 *     ];
 *     google.protobuf.Any generic_user_input = 5 [
 *       (google.api.field_info).referenced_types = {type_name: "*"},
 *     ];
 *
 * @generated from extension: google.api.FieldInfo field_info = 291403980;
 */
export declare const field_info: GenExtension<FieldOptions, FieldInfo>;
