/**
 * Apideck
 * The Apideck OpenAPI Spec: SDK Optimized
 *
 * The version of the OpenAPI document: 10.13.0
 * Contact: support@apideck.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { Currency } from './Currency';
import { CustomField } from './CustomField';
import { PassThroughBody } from './PassThroughBody';
import { Tags } from './Tags';
/**
 *
 * @export
 * @interface Opportunity
 */
export interface Opportunity {
    /**
     * The title or name of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    title: string;
    /**
     * A unique identifier for the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    readonly id?: string;
    /**
     * The unique identifier of the primary contact associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    primary_contact_id?: string | null;
    /**
     * A description of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    description?: string | null;
    /**
     * The type of the opportunity
     * @type {string}
     * @memberof Opportunity
     */
    type?: string | null;
    /**
     * The monetary value associated with the opportunity
     * @type {number}
     * @memberof Opportunity
     */
    monetary_amount?: number | null;
    /**
     *
     * @type {Currency}
     * @memberof Opportunity
     */
    currency?: Currency | null;
    /**
     * The probability of winning the opportunity, expressed as a percentage.
     * @type {number}
     * @memberof Opportunity
     */
    win_probability?: number | null;
    /**
     * The expected revenue from the opportunity
     * @type {number}
     * @memberof Opportunity
     */
    readonly expected_revenue?: number | null;
    /**
     * The actual closing date for the opportunity. If close_date is null, the opportunity is not closed yet.
     * @type {Date}
     * @memberof Opportunity
     */
    close_date?: Date | null;
    /**
     * The unique identifier of the reason why the opportunity was lost.
     * @type {string}
     * @memberof Opportunity
     */
    loss_reason_id?: string | null;
    /**
     * The reason why the opportunity was lost.
     * @type {string}
     * @memberof Opportunity
     */
    loss_reason?: string | null;
    /**
     * The unique identifier of the reason why the opportunity was won.
     * @type {string}
     * @memberof Opportunity
     */
    won_reason_id?: string | null;
    /**
     * The reason why the opportunity was won.
     * @type {string}
     * @memberof Opportunity
     */
    won_reason?: string | null;
    /**
     * The unique identifier of the pipeline associated with the opportunity
     * @type {string}
     * @memberof Opportunity
     */
    pipeline_id?: string | null;
    /**
     * The unique identifier of the stage in the pipeline associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    pipeline_stage_id?: string | null;
    /**
     * The unique identifier of the source of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    source_id?: string | null;
    /**
     * The unique identifier of the lead associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    lead_id?: string | null;
    /**
     * The source of the lead associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    lead_source?: string | null;
    /**
     * The unique identifier of the contact associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    contact_id?: string | null;
    /**
     * An array of unique identifiers of all contacts associated with the opportunity.
     * @type {Array<string>}
     * @memberof Opportunity
     */
    contact_ids?: Array<string>;
    /**
     * The unique identifier of the company associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    company_id?: string | null;
    /**
     * The name of the company associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    company_name?: string | null;
    /**
     * The unique identifier of the user who owns the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    owner_id?: string | null;
    /**
     * The priority level of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    priority?: string | null;
    /**
     * The current status of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    status?: string | null;
    /**
     * The unique identifier of the current status of the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    status_id?: string | null;
    /**
     *
     * @type {Tags}
     * @memberof Opportunity
     */
    tags?: Tags | null;
    /**
     * The number of interactions with the opportunity.
     * @type {number}
     * @memberof Opportunity
     */
    readonly interaction_count?: number | null;
    /**
     *
     * @type {Array<CustomField>}
     * @memberof Opportunity
     */
    custom_fields?: Array<CustomField>;
    /**
     * The date and time when the stage of the opportunity was last changed.
     * @type {Date}
     * @memberof Opportunity
     */
    stage_last_changed_at?: Date | null;
    /**
     * The date and time of the last activity associated with the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    readonly last_activity_at?: string | null;
    /**
     * Indicates whether the opportunity has been deleted.
     * @type {boolean}
     * @memberof Opportunity
     */
    readonly deleted?: boolean;
    /**
     * The date and time when the stage of the opportunity was last changed.
     * @type {Date}
     * @memberof Opportunity
     */
    readonly date_stage_changed?: Date | null;
    /**
     * The date and time when the opportunity was last contacted.
     * @type {Date}
     * @memberof Opportunity
     */
    readonly date_last_contacted?: Date | null;
    /**
     * The date and time when the lead associated with the opportunity was created.
     * @type {Date}
     * @memberof Opportunity
     */
    readonly date_lead_created?: Date | null;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     * @type {object}
     * @memberof Opportunity
     */
    readonly custom_mappings?: object | null;
    /**
     * The unique identifier of the user who last updated the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    readonly updated_by?: string | null;
    /**
     * The unique identifier of the user who created the opportunity.
     * @type {string}
     * @memberof Opportunity
     */
    readonly created_by?: string | null;
    /**
     * The date and time when the opportunity was last updated.
     * @type {Date}
     * @memberof Opportunity
     */
    readonly updated_at?: Date | null;
    /**
     * The date and time when the opportunity was created.
     * @type {Date}
     * @memberof Opportunity
     */
    readonly created_at?: Date | null;
    /**
     *
     * @type {PassThroughBody}
     * @memberof Opportunity
     */
    pass_through?: PassThroughBody;
}
export declare function OpportunityFromJSON(json: any): Opportunity;
export declare function OpportunityFromJSONTyped(json: any, ignoreDiscriminator: boolean): Opportunity;
export declare function OpportunityToJSON(value?: Opportunity | null): any;
