import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ActivityAttendee, ActivityAttendeeInput, ActivityAttendeeInput$Outbound } from "./activityattendee.js";
import { Address, Address$Outbound } from "./address.js";
import { CustomField, CustomField$Outbound } from "./customfield.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
/**
 * The type of the activity
 */
export declare const ActivityType: {
    readonly Call: "call";
    readonly Meeting: "meeting";
    readonly Email: "email";
    readonly Note: "note";
    readonly Task: "task";
    readonly Deadline: "deadline";
    readonly SendLetter: "send-letter";
    readonly SendQuote: "send-quote";
    readonly Other: "other";
};
/**
 * The type of the activity
 */
export type ActivityType = ClosedEnum<typeof ActivityType>;
export declare const ShowAs: {
    readonly Free: "free";
    readonly Busy: "busy";
};
export type ShowAs = ClosedEnum<typeof ShowAs>;
export type Activity = {
    /**
     * The unique identifier of the activity
     */
    id?: string | undefined;
    /**
     * The third-party API ID of original entity
     */
    downstreamId?: string | null | undefined;
    /**
     * The date and time of the activity
     */
    activityDatetime?: string | null | undefined;
    /**
     * The duration of the activity in seconds
     */
    durationSeconds?: number | null | undefined;
    /**
     * The user related to the activity
     */
    userId?: string | null | undefined;
    /**
     * The account related to the activity
     */
    accountId?: string | null | undefined;
    /**
     * The contact related to the activity
     */
    contactId?: string | null | undefined;
    /**
     * The company related to the activity
     */
    companyId?: string | null | undefined;
    /**
     * The opportunity related to the activity
     */
    opportunityId?: string | null | undefined;
    /**
     * The lead related to the activity
     */
    leadId?: string | null | undefined;
    /**
     * The owner of the activity
     */
    ownerId?: string | null | undefined;
    /**
     * The campaign related to the activity
     */
    campaignId?: string | null | undefined;
    /**
     * The case related to the activity
     */
    caseId?: string | null | undefined;
    /**
     * The asset related to the activity
     */
    assetId?: string | null | undefined;
    /**
     * The contract related to the activity
     */
    contractId?: string | null | undefined;
    /**
     * The product related to the activity
     */
    productId?: string | null | undefined;
    /**
     * The solution related to the activity
     */
    solutionId?: string | null | undefined;
    /**
     * The custom object related to the activity
     */
    customObjectId?: string | null | undefined;
    /**
     * The type of the activity
     */
    type: ActivityType | null;
    /**
     * The title of the activity
     */
    title?: string | null | undefined;
    /**
     * A description of the activity
     */
    description?: string | null | undefined;
    /**
     * An internal note about the activity
     */
    note?: string | null | undefined;
    /**
     * The location of the activity
     */
    location?: string | null | undefined;
    locationAddress?: Address | undefined;
    /**
     * Whether the Activity is an all day event or not
     */
    allDayEvent?: boolean | null | undefined;
    /**
     * Whether the Activity is private or not
     */
    private?: boolean | null | undefined;
    /**
     * Whether the Activity is a group event or not
     */
    groupEvent?: boolean | null | undefined;
    /**
     * The sub type of the group event
     */
    eventSubType?: string | null | undefined;
    /**
     * The type of the group event
     */
    groupEventType?: string | null | undefined;
    /**
     * Whether the activity is a child of another activity or not
     */
    child?: boolean | null | undefined;
    /**
     * Whether the activity is archived or not
     */
    archived?: boolean | null | undefined;
    /**
     * Whether the activity is deleted or not
     */
    deleted?: boolean | null | undefined;
    showAs?: ShowAs | null | undefined;
    /**
     * Whether the Activity is done or not
     */
    done?: boolean | null | undefined;
    /**
     * The start date and time of the activity
     */
    startDatetime?: string | null | undefined;
    /**
     * The end date and time of the activity
     */
    endDatetime?: string | null | undefined;
    /**
     * The duration of the activity in minutes
     */
    durationMinutes?: number | null | undefined;
    /**
     * The date of the activity
     */
    activityDate?: string | null | undefined;
    /**
     * The end date of the activity
     */
    endDate?: string | null | undefined;
    /**
     * Whether the activity is recurrent or not
     */
    recurrent?: boolean | undefined;
    /**
     * The date and time of the reminder
     */
    reminderDatetime?: string | null | undefined;
    /**
     * Whether the reminder is set or not
     */
    reminderSet?: boolean | null | undefined;
    /**
     * The URL of the video conference
     */
    videoConferenceUrl?: string | null | undefined;
    /**
     * The ID of the video conference
     */
    videoConferenceId?: string | null | undefined;
    /**
     * Custom fields of the activity
     */
    customFields?: Array<CustomField> | undefined;
    attendees?: Array<ActivityAttendee> | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The user who last updated the activity
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the activity
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the activity was last updated
     */
    updatedAt?: string | null | undefined;
    /**
     * The date and time when the activity was created
     */
    createdAt?: string | 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;
};
export type ActivityInput = {
    /**
     * The date and time of the activity
     */
    activityDatetime?: string | null | undefined;
    /**
     * The duration of the activity in seconds
     */
    durationSeconds?: number | null | undefined;
    /**
     * The user related to the activity
     */
    userId?: string | null | undefined;
    /**
     * The account related to the activity
     */
    accountId?: string | null | undefined;
    /**
     * The contact related to the activity
     */
    contactId?: string | null | undefined;
    /**
     * The company related to the activity
     */
    companyId?: string | null | undefined;
    /**
     * The opportunity related to the activity
     */
    opportunityId?: string | null | undefined;
    /**
     * The lead related to the activity
     */
    leadId?: string | null | undefined;
    /**
     * The owner of the activity
     */
    ownerId?: string | null | undefined;
    /**
     * The campaign related to the activity
     */
    campaignId?: string | null | undefined;
    /**
     * The case related to the activity
     */
    caseId?: string | null | undefined;
    /**
     * The asset related to the activity
     */
    assetId?: string | null | undefined;
    /**
     * The contract related to the activity
     */
    contractId?: string | null | undefined;
    /**
     * The product related to the activity
     */
    productId?: string | null | undefined;
    /**
     * The solution related to the activity
     */
    solutionId?: string | null | undefined;
    /**
     * The custom object related to the activity
     */
    customObjectId?: string | null | undefined;
    /**
     * The type of the activity
     */
    type: ActivityType | null;
    /**
     * The title of the activity
     */
    title?: string | null | undefined;
    /**
     * A description of the activity
     */
    description?: string | null | undefined;
    /**
     * An internal note about the activity
     */
    note?: string | null | undefined;
    /**
     * The location of the activity
     */
    location?: string | null | undefined;
    locationAddress?: Address | undefined;
    /**
     * Whether the Activity is an all day event or not
     */
    allDayEvent?: boolean | null | undefined;
    /**
     * Whether the Activity is private or not
     */
    private?: boolean | null | undefined;
    /**
     * Whether the Activity is a group event or not
     */
    groupEvent?: boolean | null | undefined;
    /**
     * The sub type of the group event
     */
    eventSubType?: string | null | undefined;
    /**
     * The type of the group event
     */
    groupEventType?: string | null | undefined;
    /**
     * Whether the activity is a child of another activity or not
     */
    child?: boolean | null | undefined;
    /**
     * Whether the activity is archived or not
     */
    archived?: boolean | null | undefined;
    /**
     * Whether the activity is deleted or not
     */
    deleted?: boolean | null | undefined;
    showAs?: ShowAs | null | undefined;
    /**
     * Whether the Activity is done or not
     */
    done?: boolean | null | undefined;
    /**
     * The start date and time of the activity
     */
    startDatetime?: string | null | undefined;
    /**
     * The end date and time of the activity
     */
    endDatetime?: string | null | undefined;
    /**
     * The date of the activity
     */
    activityDate?: string | null | undefined;
    /**
     * The end date of the activity
     */
    endDate?: string | null | undefined;
    /**
     * Whether the activity is recurrent or not
     */
    recurrent?: boolean | undefined;
    /**
     * The date and time of the reminder
     */
    reminderDatetime?: string | null | undefined;
    /**
     * Whether the reminder is set or not
     */
    reminderSet?: boolean | null | undefined;
    /**
     * The URL of the video conference
     */
    videoConferenceUrl?: string | null | undefined;
    /**
     * The ID of the video conference
     */
    videoConferenceId?: string | null | undefined;
    /**
     * Custom fields of the activity
     */
    customFields?: Array<CustomField> | undefined;
    attendees?: Array<ActivityAttendeeInput> | 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 ActivityType$inboundSchema: z.ZodNativeEnum<typeof ActivityType>;
/** @internal */
export declare const ActivityType$outboundSchema: z.ZodNativeEnum<typeof ActivityType>;
/** @internal */
export declare const ShowAs$inboundSchema: z.ZodNativeEnum<typeof ShowAs>;
/** @internal */
export declare const ShowAs$outboundSchema: z.ZodNativeEnum<typeof ShowAs>;
/** @internal */
export declare const Activity$inboundSchema: z.ZodType<Activity, z.ZodTypeDef, unknown>;
export declare function activityFromJSON(jsonString: string): SafeParseResult<Activity, SDKValidationError>;
/** @internal */
export type ActivityInput$Outbound = {
    activity_datetime?: string | null | undefined;
    duration_seconds?: number | null | undefined;
    user_id?: string | null | undefined;
    account_id?: string | null | undefined;
    contact_id?: string | null | undefined;
    company_id?: string | null | undefined;
    opportunity_id?: string | null | undefined;
    lead_id?: string | null | undefined;
    owner_id?: string | null | undefined;
    campaign_id?: string | null | undefined;
    case_id?: string | null | undefined;
    asset_id?: string | null | undefined;
    contract_id?: string | null | undefined;
    product_id?: string | null | undefined;
    solution_id?: string | null | undefined;
    custom_object_id?: string | null | undefined;
    type: string | null;
    title?: string | null | undefined;
    description?: string | null | undefined;
    note?: string | null | undefined;
    location?: string | null | undefined;
    location_address?: Address$Outbound | undefined;
    all_day_event?: boolean | null | undefined;
    private?: boolean | null | undefined;
    group_event?: boolean | null | undefined;
    event_sub_type?: string | null | undefined;
    group_event_type?: string | null | undefined;
    child?: boolean | null | undefined;
    archived?: boolean | null | undefined;
    deleted?: boolean | null | undefined;
    show_as?: string | null | undefined;
    done?: boolean | null | undefined;
    start_datetime?: string | null | undefined;
    end_datetime?: string | null | undefined;
    activity_date?: string | null | undefined;
    end_date?: string | null | undefined;
    recurrent?: boolean | undefined;
    reminder_datetime?: string | null | undefined;
    reminder_set?: boolean | null | undefined;
    video_conference_url?: string | null | undefined;
    video_conference_id?: string | null | undefined;
    custom_fields?: Array<CustomField$Outbound> | undefined;
    attendees?: Array<ActivityAttendeeInput$Outbound> | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const ActivityInput$outboundSchema: z.ZodType<ActivityInput$Outbound, z.ZodTypeDef, ActivityInput>;
export declare function activityInputToJSON(activityInput: ActivityInput): string;
//# sourceMappingURL=activity.d.ts.map