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 { DateRange } from "../common/dates";
import { KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval } from "../enums/keyword_plan_forecast_interval";
/**
 * A Keyword Planner plan.
 * Max number of saved keyword plans: 10000.
 * It's possible to remove plans if limit is reached.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.KeywordPlan
 */
export interface KeywordPlan {
    /**
     * Immutable. The resource name of the Keyword Planner plan.
     * KeywordPlan resource names have the form:
     *
     * `customers/{customer_id}/keywordPlans/{kp_plan_id}`
     *
     * @generated from protobuf field: string resource_name = 1;
     */
    resourceName: string;
    /**
     * Output only. The ID of the keyword plan.
     *
     * @generated from protobuf field: optional int64 id = 5;
     */
    id?: bigint;
    /**
     * The name of the keyword plan.
     *
     * This field is required and should not be empty when creating new keyword
     * plans.
     *
     * @generated from protobuf field: optional string name = 6;
     */
    name?: string;
    /**
     * The date period used for forecasting the plan.
     *
     * @generated from protobuf field: google.ads.googleads.v11.resources.KeywordPlanForecastPeriod forecast_period = 4;
     */
    forecastPeriod?: KeywordPlanForecastPeriod;
}
/**
 * The forecasting period associated with the keyword plan.
 *
 * @generated from protobuf message google.ads.googleads.v11.resources.KeywordPlanForecastPeriod
 */
export interface KeywordPlanForecastPeriod {
    /**
     * @generated from protobuf oneof: interval
     */
    interval: {
        oneofKind: "dateInterval";
        /**
         * A future date range relative to the current date used for forecasting.
         *
         * @generated from protobuf field: google.ads.googleads.v11.enums.KeywordPlanForecastIntervalEnum.KeywordPlanForecastInterval date_interval = 1;
         */
        dateInterval: KeywordPlanForecastIntervalEnum_KeywordPlanForecastInterval;
    } | {
        oneofKind: "dateRange";
        /**
         * The custom date range used for forecasting. It cannot be greater than
         * a year.
         * The start and end dates must be in the future. Otherwise, an error will
         * be returned when the forecasting action is performed.
         * The start and end dates are inclusive.
         *
         * @generated from protobuf field: google.ads.googleads.v11.common.DateRange date_range = 2;
         */
        dateRange: DateRange;
    } | {
        oneofKind: undefined;
    };
}
declare class KeywordPlan$Type extends MessageType<KeywordPlan> {
    constructor();
    create(value?: PartialMessage<KeywordPlan>): KeywordPlan;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: KeywordPlan): KeywordPlan;
    internalBinaryWrite(message: KeywordPlan, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.KeywordPlan
 */
export declare const KeywordPlan: KeywordPlan$Type;
declare class KeywordPlanForecastPeriod$Type extends MessageType<KeywordPlanForecastPeriod> {
    constructor();
    create(value?: PartialMessage<KeywordPlanForecastPeriod>): KeywordPlanForecastPeriod;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: KeywordPlanForecastPeriod): KeywordPlanForecastPeriod;
    internalBinaryWrite(message: KeywordPlanForecastPeriod, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message google.ads.googleads.v11.resources.KeywordPlanForecastPeriod
 */
export declare const KeywordPlanForecastPeriod: KeywordPlanForecastPeriod$Type;
export {};
