import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType } from "../enums/google_ads_field_data_type";
import { GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory } from "../enums/google_ads_field_category";
/**
 * A field or resource (artifact) used by GoogleAdsService.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.GoogleAdsField
 */
export interface GoogleAdsField {
    /**
     * Output only. The resource name of the artifact.
     * Artifact resource names have the form:
     *
     * `googleAdsFields/{name}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The name of the artifact.
     *
     * @generated from protobuf field: optional string name = 21;
     */
    name?: string;
    /**
     * Output only. The category of the artifact.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.GoogleAdsFieldCategoryEnum.GoogleAdsFieldCategory category = 3;
     */
    category: GoogleAdsFieldCategoryEnum_GoogleAdsFieldCategory;
    /**
     * Output only. Whether the artifact can be used in a SELECT clause in search
     * queries.
     *
     * @generated from protobuf field: optional bool selectable = 22;
     */
    selectable?: boolean;
    /**
     * Output only. Whether the artifact can be used in a WHERE clause in search
     * queries.
     *
     * @generated from protobuf field: optional bool filterable = 23;
     */
    filterable?: boolean;
    /**
     * Output only. Whether the artifact can be used in a ORDER BY clause in search
     * queries.
     *
     * @generated from protobuf field: optional bool sortable = 24;
     */
    sortable?: boolean;
    /**
     * Output only. The names of all resources, segments, and metrics that are selectable with
     * the described artifact.
     *
     * @generated from protobuf field: repeated string selectable_with = 25;
     */
    selectableWith: string[];
    /**
     * Output only. The names of all resources that are selectable with the described
     * artifact. Fields from these resources do not segment metrics when included
     * in search queries.
     *
     * This field is only set for artifacts whose category is RESOURCE.
     *
     * @generated from protobuf field: repeated string attribute_resources = 26;
     */
    attributeResources: string[];
    /**
     * Output only. This field lists the names of all metrics that are selectable with the
     * described artifact when it is used in the FROM clause.
     * It is only set for artifacts whose category is RESOURCE.
     *
     * @generated from protobuf field: repeated string metrics = 27;
     */
    metrics: string[];
    /**
     * Output only. This field lists the names of all artifacts, whether a segment or another
     * resource, that segment metrics when included in search queries and when the
     * described artifact is used in the FROM clause. It is only set for artifacts
     * whose category is RESOURCE.
     *
     * @generated from protobuf field: repeated string segments = 28;
     */
    segments: string[];
    /**
     * Output only. Values the artifact can assume if it is a field of type ENUM.
     *
     * This field is only set for artifacts of category SEGMENT or ATTRIBUTE.
     *
     * @generated from protobuf field: repeated string enum_values = 29;
     */
    enumValues: string[];
    /**
     * Output only. This field determines the operators that can be used with the artifact
     * in WHERE clauses.
     *
     * @generated from protobuf field: google.ads.googleads.v11.enums.GoogleAdsFieldDataTypeEnum.GoogleAdsFieldDataType data_type = 12;
     */
    dataType: GoogleAdsFieldDataTypeEnum_GoogleAdsFieldDataType;
    /**
     * Output only. The URL of proto describing the artifact's data type.
     *
     * @generated from protobuf field: optional string type_url = 30;
     */
    typeUrl?: string;
    /**
     * Output only. Whether the field artifact is repeated.
     *
     * @generated from protobuf field: optional bool is_repeated = 31;
     */
    isRepeated?: boolean;
}
declare class GoogleAdsField$Type extends MessageType<GoogleAdsField> {
    constructor();
    create(value?: PartialMessage<GoogleAdsField>): GoogleAdsField;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GoogleAdsField): GoogleAdsField;
    internalBinaryWrite(message: GoogleAdsField, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.GoogleAdsField
 */
export declare const GoogleAdsField: GoogleAdsField$Type;
export {};
