import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { RFCDate } from "../../types/rfcdate.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Currency } from "./currency.js";
import { CustomField } from "./customfield.js";
import { PassThroughBody } from "./passthroughbody.js";
export type Opportunity = {
    /**
     * A unique identifier for the opportunity.
     */
    id?: string | undefined;
    /**
     * The title or name of the opportunity.
     */
    title: string;
    /**
     * The unique identifier of the primary contact associated with the opportunity.
     */
    primaryContactId?: string | null | undefined;
    /**
     * A description of the opportunity.
     */
    description?: string | null | undefined;
    /**
     * The type of the opportunity
     */
    type?: string | null | undefined;
    /**
     * The monetary value associated with the opportunity
     */
    monetaryAmount?: number | null | undefined;
    /**
     * Indicates the associated currency for an amount of money. Values correspond to [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).
     */
    currency?: Currency | null | undefined;
    /**
     * The probability of winning the opportunity, expressed as a percentage.
     */
    winProbability?: number | null | undefined;
    /**
     * The expected revenue from the opportunity
     */
    expectedRevenue?: number | null | undefined;
    /**
     * The actual closing date for the opportunity. If close_date is null, the opportunity is not closed yet.
     */
    closeDate?: RFCDate | null | undefined;
    /**
     * The unique identifier of the reason why the opportunity was lost.
     */
    lossReasonId?: string | null | undefined;
    /**
     * The reason why the opportunity was lost.
     */
    lossReason?: string | null | undefined;
    /**
     * The unique identifier of the reason why the opportunity was won.
     */
    wonReasonId?: string | null | undefined;
    /**
     * The reason why the opportunity was won.
     */
    wonReason?: string | null | undefined;
    /**
     * The unique identifier of the pipeline associated with the opportunity
     */
    pipelineId?: string | null | undefined;
    /**
     * The unique identifier of the stage in the pipeline associated with the opportunity.
     */
    pipelineStageId?: string | null | undefined;
    /**
     * The unique identifier of the source of the opportunity.
     */
    sourceId?: string | null | undefined;
    /**
     * The unique identifier of the lead associated with the opportunity.
     */
    leadId?: string | null | undefined;
    /**
     * The source of the lead associated with the opportunity.
     */
    leadSource?: string | null | undefined;
    /**
     * The unique identifier of the contact associated with the opportunity.
     */
    contactId?: string | null | undefined;
    /**
     * An array of unique identifiers of all contacts associated with the opportunity.
     */
    contactIds?: Array<string> | undefined;
    /**
     * The unique identifier of the company associated with the opportunity.
     */
    companyId?: string | null | undefined;
    /**
     * The name of the company associated with the opportunity.
     */
    companyName?: string | null | undefined;
    /**
     * The unique identifier of the user who owns the opportunity.
     */
    ownerId?: string | null | undefined;
    /**
     * The priority level of the opportunity.
     */
    priority?: string | null | undefined;
    /**
     * The current status of the opportunity.
     */
    status?: string | null | undefined;
    /**
     * The unique identifier of the current status of the opportunity.
     */
    statusId?: string | null | undefined;
    tags?: Array<string> | null | undefined;
    /**
     * The number of interactions with the opportunity.
     */
    interactionCount?: number | null | undefined;
    customFields?: Array<CustomField> | undefined;
    /**
     * The date and time when the stage of the opportunity was last changed.
     */
    stageLastChangedAt?: Date | null | undefined;
    /**
     * The date and time of the last activity associated with the opportunity.
     */
    lastActivityAt?: string | null | undefined;
    /**
     * Indicates whether the opportunity has been deleted.
     */
    deleted?: boolean | undefined;
    /**
     * The date and time when the stage of the opportunity was last changed.
     */
    dateStageChanged?: Date | null | undefined;
    /**
     * The date and time when the opportunity was last contacted.
     */
    dateLastContacted?: Date | null | undefined;
    /**
     * The date and time when the lead associated with the opportunity was created.
     */
    dateLeadCreated?: Date | null | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The unique identifier of the user who last updated the opportunity.
     */
    updatedBy?: string | null | undefined;
    /**
     * The unique identifier of the user who created the opportunity.
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the opportunity was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The date and time when the opportunity was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
/** @internal */
export declare const Opportunity$inboundSchema: z.ZodType<Opportunity, z.ZodTypeDef, unknown>;
export declare function opportunityFromJSON(jsonString: string): SafeParseResult<Opportunity, SDKValidationError>;
//# sourceMappingURL=opportunity.d.ts.map