import { ServiceType } from "@protobuf-ts/runtime-rpc";
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 { KeywordThemeConstant } from "../resources/keyword_theme_constant";
import { SmartCampaignAdInfo } from "../common/ad_type_infos";
import { LocationInfo } from "../common/criteria";
import { ProximityInfo } from "../common/criteria";
import { KeywordThemeInfo } from "../common/criteria";
import { AdScheduleInfo } from "../common/criteria";
/**
 * Request message for
 * [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsRequest
 */
export interface SuggestSmartCampaignBudgetOptionsRequest {
    /**
     * Required. The ID of the customer whose budget options are to be suggested.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * @generated from protobuf oneof: suggestion_data
     */
    suggestionData: {
        oneofKind: "campaign";
        /**
         * Required. The resource name of the campaign to get suggestion for.
         *
         * @generated from protobuf field: string campaign = 2;
         */
        campaign: string;
    } | {
        oneofKind: "suggestionInfo";
        /**
         * Required. Information needed to get budget options
         *
         * @generated from protobuf field: google.ads.googleads.v11.services.SmartCampaignSuggestionInfo suggestion_info = 3;
         */
        suggestionInfo: SmartCampaignSuggestionInfo;
    } | {
        oneofKind: undefined;
    };
}
/**
 * Information needed to get suggestion for Smart Campaign. More information
 * provided will help the system to derive better suggestions.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo
 */
export interface SmartCampaignSuggestionInfo {
    /**
     * Optional. Landing page URL of the campaign.
     *
     * @generated from protobuf field: string final_url = 1;
     */
    finalUrl: string;
    /**
     * Optional. The two letter advertising language for the Smart campaign to be
     * constructed, default to 'en' if not set.
     *
     * @generated from protobuf field: string language_code = 3;
     */
    languageCode: string;
    /**
     * Optional. The business ad schedule.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.AdScheduleInfo ad_schedules = 6;
     */
    adSchedules: AdScheduleInfo[];
    /**
     * Optional. Smart campaign keyword themes. This field may greatly improve suggestion
     * accuracy and we recommend always setting it if possible.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.KeywordThemeInfo keyword_themes = 7;
     */
    keywordThemes: KeywordThemeInfo[];
    /**
     * @generated from protobuf oneof: business_setting
     */
    businessSetting: {
        oneofKind: "businessContext";
        /**
         * Optional. Context describing the business to advertise.
         *
         * @generated from protobuf field: google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.BusinessContext business_context = 8;
         */
        businessContext: SmartCampaignSuggestionInfo_BusinessContext;
    } | {
        oneofKind: "businessProfileLocation";
        /**
         * Optional. The resource name of a Business Profile location.
         * Business Profile location resource names can be fetched through the
         * Business Profile API and adhere to the following format:
         * `locations/{locationId}`.
         *
         * See the [Business Profile API]
         * (https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations)
         * for additional details.
         *
         * @generated from protobuf field: string business_profile_location = 9;
         */
        businessProfileLocation: string;
    } | {
        oneofKind: undefined;
    };
    /**
     * @generated from protobuf oneof: geo_target
     */
    geoTarget: {
        oneofKind: "locationList";
        /**
         * Optional. The targeting geo location by locations.
         *
         * @generated from protobuf field: google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.LocationList location_list = 4;
         */
        locationList: SmartCampaignSuggestionInfo_LocationList;
    } | {
        oneofKind: "proximity";
        /**
         * Optional. The targeting geo location by proximity.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.ProximityInfo proximity = 5;
         */
        proximity: ProximityInfo;
    } | {
        oneofKind: undefined;
    };
}
/**
 * A list of locations.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.LocationList
 */
export interface SmartCampaignSuggestionInfo_LocationList {
    /**
     * Required. Locations.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.common.LocationInfo locations = 1;
     */
    locations: LocationInfo[];
}
/**
 * A context that describes a business.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.BusinessContext
 */
export interface SmartCampaignSuggestionInfo_BusinessContext {
    /**
     * Optional. The name of the business.
     *
     * @generated from protobuf field: string business_name = 1;
     */
    businessName: string;
}
/**
 * Response message for
 * [SmartCampaignSuggestService.SuggestSmartCampaignBudgets][]. Depending on
 * whether the system could suggest the options, either all of the options or
 * none of them might be returned.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse
 */
export interface SuggestSmartCampaignBudgetOptionsResponse {
    /**
     * Optional. The lowest budget option.
     *
     * @generated from protobuf field: optional google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.BudgetOption low = 1;
     */
    low?: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption;
    /**
     * Optional. The recommended budget option.
     *
     * @generated from protobuf field: optional google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.BudgetOption recommended = 2;
     */
    recommended?: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption;
    /**
     * Optional. The highest budget option.
     *
     * @generated from protobuf field: optional google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.BudgetOption high = 3;
     */
    high?: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption;
}
/**
 * Performance metrics for a given budget option.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.Metrics
 */
export interface SuggestSmartCampaignBudgetOptionsResponse_Metrics {
    /**
     * The estimated min daily clicks.
     *
     * @generated from protobuf field: int64 min_daily_clicks = 1;
     */
    minDailyClicks: bigint;
    /**
     * The estimated max daily clicks.
     *
     * @generated from protobuf field: int64 max_daily_clicks = 2;
     */
    maxDailyClicks: bigint;
}
/**
 * Smart Campaign budget option.
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.BudgetOption
 */
export interface SuggestSmartCampaignBudgetOptionsResponse_BudgetOption {
    /**
     * The amount of the budget, in the local currency for the account.
     * Amount is specified in micros, where one million is equivalent to one
     * currency unit.
     *
     * @generated from protobuf field: int64 daily_amount_micros = 1;
     */
    dailyAmountMicros: bigint;
    /**
     * Metrics pertaining to the suggested budget, could be empty if there is
     * not enough information to derive the estimates.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.Metrics metrics = 2;
     */
    metrics?: SuggestSmartCampaignBudgetOptionsResponse_Metrics;
}
/**
 * Request message for
 * [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignAd].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignAdRequest
 */
export interface SuggestSmartCampaignAdRequest {
    /**
     * Required. The ID of the customer.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. Inputs used to suggest a Smart campaign ad.
     * Required fields: final_url, language_code, keyword_themes.
     * Optional but recommended fields to improve the quality of the suggestion:
     * business_setting and geo_target.
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.SmartCampaignSuggestionInfo suggestion_info = 2;
     */
    suggestionInfo?: SmartCampaignSuggestionInfo;
}
/**
 * Response message for
 * [SmartCampaignSuggestService.SuggestSmartCampaignAd][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestSmartCampaignAd].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignAdResponse
 */
export interface SuggestSmartCampaignAdResponse {
    /**
     * Optional. Ad info includes 3 creative headlines and 2 creative descriptions.
     *
     * @generated from protobuf field: google.ads.googleads.v11.common.SmartCampaignAdInfo ad_info = 1;
     */
    adInfo?: SmartCampaignAdInfo;
}
/**
 * Request message for
 * [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestKeywordThemes].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestKeywordThemesRequest
 */
export interface SuggestKeywordThemesRequest {
    /**
     * Required. The ID of the customer.
     *
     * @generated from protobuf field: string customer_id = 1;
     */
    customerId: string;
    /**
     * Required. Information to get keyword theme suggestions.
     * Required fields:
     * * suggestion_info.final_url
     * * suggestion_info.language_code
     * * suggestion_info.geo_target
     *
     * Recommended fields:
     * * suggestion_info.business_setting
     *
     * @generated from protobuf field: google.ads.googleads.v11.services.SmartCampaignSuggestionInfo suggestion_info = 2;
     */
    suggestionInfo?: SmartCampaignSuggestionInfo;
}
/**
 * Response message for
 * [SmartCampaignSuggestService.SuggestKeywordThemes][google.ads.googleads.v11.services.SmartCampaignSuggestService.SuggestKeywordThemes].
 *
 * @generated from protobuf message google.ads.googleads.v11.services.SuggestKeywordThemesResponse
 */
export interface SuggestKeywordThemesResponse {
    /**
     * Smart campaign keyword theme suggestions.
     *
     * @generated from protobuf field: repeated google.ads.googleads.v11.resources.KeywordThemeConstant keyword_themes = 1;
     */
    keywordThemes: KeywordThemeConstant[];
}
declare class SuggestSmartCampaignBudgetOptionsRequest$Type extends MessageType<SuggestSmartCampaignBudgetOptionsRequest> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignBudgetOptionsRequest>): SuggestSmartCampaignBudgetOptionsRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignBudgetOptionsRequest): SuggestSmartCampaignBudgetOptionsRequest;
    internalBinaryWrite(message: SuggestSmartCampaignBudgetOptionsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsRequest
 */
export declare const SuggestSmartCampaignBudgetOptionsRequest: SuggestSmartCampaignBudgetOptionsRequest$Type;
declare class SmartCampaignSuggestionInfo$Type extends MessageType<SmartCampaignSuggestionInfo> {
    constructor();
    create(value?: PartialMessage<SmartCampaignSuggestionInfo>): SmartCampaignSuggestionInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SmartCampaignSuggestionInfo): SmartCampaignSuggestionInfo;
    internalBinaryWrite(message: SmartCampaignSuggestionInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo
 */
export declare const SmartCampaignSuggestionInfo: SmartCampaignSuggestionInfo$Type;
declare class SmartCampaignSuggestionInfo_LocationList$Type extends MessageType<SmartCampaignSuggestionInfo_LocationList> {
    constructor();
    create(value?: PartialMessage<SmartCampaignSuggestionInfo_LocationList>): SmartCampaignSuggestionInfo_LocationList;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SmartCampaignSuggestionInfo_LocationList): SmartCampaignSuggestionInfo_LocationList;
    internalBinaryWrite(message: SmartCampaignSuggestionInfo_LocationList, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.LocationList
 */
export declare const SmartCampaignSuggestionInfo_LocationList: SmartCampaignSuggestionInfo_LocationList$Type;
declare class SmartCampaignSuggestionInfo_BusinessContext$Type extends MessageType<SmartCampaignSuggestionInfo_BusinessContext> {
    constructor();
    create(value?: PartialMessage<SmartCampaignSuggestionInfo_BusinessContext>): SmartCampaignSuggestionInfo_BusinessContext;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SmartCampaignSuggestionInfo_BusinessContext): SmartCampaignSuggestionInfo_BusinessContext;
    internalBinaryWrite(message: SmartCampaignSuggestionInfo_BusinessContext, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SmartCampaignSuggestionInfo.BusinessContext
 */
export declare const SmartCampaignSuggestionInfo_BusinessContext: SmartCampaignSuggestionInfo_BusinessContext$Type;
declare class SuggestSmartCampaignBudgetOptionsResponse$Type extends MessageType<SuggestSmartCampaignBudgetOptionsResponse> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignBudgetOptionsResponse>): SuggestSmartCampaignBudgetOptionsResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignBudgetOptionsResponse): SuggestSmartCampaignBudgetOptionsResponse;
    internalBinaryWrite(message: SuggestSmartCampaignBudgetOptionsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse
 */
export declare const SuggestSmartCampaignBudgetOptionsResponse: SuggestSmartCampaignBudgetOptionsResponse$Type;
declare class SuggestSmartCampaignBudgetOptionsResponse_Metrics$Type extends MessageType<SuggestSmartCampaignBudgetOptionsResponse_Metrics> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignBudgetOptionsResponse_Metrics>): SuggestSmartCampaignBudgetOptionsResponse_Metrics;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignBudgetOptionsResponse_Metrics): SuggestSmartCampaignBudgetOptionsResponse_Metrics;
    internalBinaryWrite(message: SuggestSmartCampaignBudgetOptionsResponse_Metrics, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.Metrics
 */
export declare const SuggestSmartCampaignBudgetOptionsResponse_Metrics: SuggestSmartCampaignBudgetOptionsResponse_Metrics$Type;
declare class SuggestSmartCampaignBudgetOptionsResponse_BudgetOption$Type extends MessageType<SuggestSmartCampaignBudgetOptionsResponse_BudgetOption> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignBudgetOptionsResponse_BudgetOption>): SuggestSmartCampaignBudgetOptionsResponse_BudgetOption;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption): SuggestSmartCampaignBudgetOptionsResponse_BudgetOption;
    internalBinaryWrite(message: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignBudgetOptionsResponse.BudgetOption
 */
export declare const SuggestSmartCampaignBudgetOptionsResponse_BudgetOption: SuggestSmartCampaignBudgetOptionsResponse_BudgetOption$Type;
declare class SuggestSmartCampaignAdRequest$Type extends MessageType<SuggestSmartCampaignAdRequest> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignAdRequest>): SuggestSmartCampaignAdRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignAdRequest): SuggestSmartCampaignAdRequest;
    internalBinaryWrite(message: SuggestSmartCampaignAdRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignAdRequest
 */
export declare const SuggestSmartCampaignAdRequest: SuggestSmartCampaignAdRequest$Type;
declare class SuggestSmartCampaignAdResponse$Type extends MessageType<SuggestSmartCampaignAdResponse> {
    constructor();
    create(value?: PartialMessage<SuggestSmartCampaignAdResponse>): SuggestSmartCampaignAdResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSmartCampaignAdResponse): SuggestSmartCampaignAdResponse;
    internalBinaryWrite(message: SuggestSmartCampaignAdResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestSmartCampaignAdResponse
 */
export declare const SuggestSmartCampaignAdResponse: SuggestSmartCampaignAdResponse$Type;
declare class SuggestKeywordThemesRequest$Type extends MessageType<SuggestKeywordThemesRequest> {
    constructor();
    create(value?: PartialMessage<SuggestKeywordThemesRequest>): SuggestKeywordThemesRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestKeywordThemesRequest): SuggestKeywordThemesRequest;
    internalBinaryWrite(message: SuggestKeywordThemesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestKeywordThemesRequest
 */
export declare const SuggestKeywordThemesRequest: SuggestKeywordThemesRequest$Type;
declare class SuggestKeywordThemesResponse$Type extends MessageType<SuggestKeywordThemesResponse> {
    constructor();
    create(value?: PartialMessage<SuggestKeywordThemesResponse>): SuggestKeywordThemesResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestKeywordThemesResponse): SuggestKeywordThemesResponse;
    internalBinaryWrite(message: SuggestKeywordThemesResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.services.SuggestKeywordThemesResponse
 */
export declare const SuggestKeywordThemesResponse: SuggestKeywordThemesResponse$Type;
/**
 * @generated ServiceType for protobuf service google.ads.googleads.v11.services.SmartCampaignSuggestService
 */
export declare const SmartCampaignSuggestService: ServiceType;
export {};
