import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ChannelsEnum, ChannelsEnum$Outbound } from "./channelsenum.js";
import { Message, Message$Outbound } from "./createmessage.js";
export declare enum Two {
    True = "true",
    False = "false"
}
export type Archived = boolean | Two;
export declare enum Campaign2 {
    True = "true",
    False = "false"
}
export type Draft = boolean | Campaign2;
export type Campaign4 = {};
/**
 * The source value of the schedule type.
 */
export type CampaignSourceValue = Campaign4 | string | number | boolean | Array<any>;
/**
 * The schedule type of the campaign.
 */
export declare enum CampaignValue {
    Immediate = "immediate",
    Scheduled = "scheduled",
    Recurring = "recurring",
    Custom = "custom",
    Triggered = "triggered",
    UnmappedValue = "unmapped_value"
}
/**
 * The schedule type of the campaign.
 */
export type CampaignValueOpen = OpenEnum<typeof CampaignValue>;
/**
 * The schedule type
 */
export type ScheduleType = {
    /**
     * The source value of the schedule type.
     */
    sourceValue?: Campaign4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The schedule type of the campaign.
     */
    value?: CampaignValueOpen | null | undefined;
};
export type CampaignSchemas4 = {};
/**
 * The source value of the Status.
 */
export type CampaignSchemasSourceValue = CampaignSchemas4 | string | number | boolean | Array<any>;
/**
 * The Status of the campaign.
 */
export declare enum CampaignSchemasValue {
    Draft = "draft",
    Archived = "archived",
    Live = "live",
    UnmappedValue = "unmapped_value"
}
/**
 * The Status of the campaign.
 */
export type CampaignSchemasValueOpen = OpenEnum<typeof CampaignSchemasValue>;
/**
 * Status of the Campaign
 */
export type CampaignStatus = {
    /**
     * The source value of the Status.
     */
    sourceValue?: CampaignSchemas4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The Status of the campaign.
     */
    value?: CampaignSchemasValueOpen | null | undefined;
};
export type Campaign = {
    archived?: boolean | Two | null | undefined;
    /**
     * channels of the Campaign
     */
    channels?: Array<ChannelsEnum> | null | undefined;
    /**
     * The created_at date
     */
    createdAt?: Date | null | undefined;
    description?: string | null | undefined;
    draft?: boolean | Campaign2 | null | undefined;
    /**
     * The first_sent_at date
     */
    firstSentAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The last_sent_at date
     */
    lastSentAt?: Date | null | undefined;
    messages?: Array<Message> | null | undefined;
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * The schedule type
     */
    scheduleType?: ScheduleType | null | undefined;
    /**
     * Status of the Campaign
     */
    status?: CampaignStatus | null | undefined;
    tags?: Array<string> | null | undefined;
    /**
     * The updated_at date
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const Two$inboundSchema: z.ZodNativeEnum<typeof Two>;
/** @internal */
export declare const Two$outboundSchema: z.ZodNativeEnum<typeof Two>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Two$ {
    /** @deprecated use `Two$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof Two>;
    /** @deprecated use `Two$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof Two>;
}
/** @internal */
export declare const Archived$inboundSchema: z.ZodType<Archived, z.ZodTypeDef, unknown>;
/** @internal */
export type Archived$Outbound = boolean | string;
/** @internal */
export declare const Archived$outboundSchema: z.ZodType<Archived$Outbound, z.ZodTypeDef, Archived>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Archived$ {
    /** @deprecated use `Archived$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Archived, z.ZodTypeDef, unknown>;
    /** @deprecated use `Archived$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Archived$Outbound, z.ZodTypeDef, Archived>;
    /** @deprecated use `Archived$Outbound` instead. */
    type Outbound = Archived$Outbound;
}
export declare function archivedToJSON(archived: Archived): string;
export declare function archivedFromJSON(jsonString: string): SafeParseResult<Archived, SDKValidationError>;
/** @internal */
export declare const Campaign2$inboundSchema: z.ZodNativeEnum<typeof Campaign2>;
/** @internal */
export declare const Campaign2$outboundSchema: z.ZodNativeEnum<typeof Campaign2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Campaign2$ {
    /** @deprecated use `Campaign2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof Campaign2>;
    /** @deprecated use `Campaign2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof Campaign2>;
}
/** @internal */
export declare const Draft$inboundSchema: z.ZodType<Draft, z.ZodTypeDef, unknown>;
/** @internal */
export type Draft$Outbound = boolean | string;
/** @internal */
export declare const Draft$outboundSchema: z.ZodType<Draft$Outbound, z.ZodTypeDef, Draft>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Draft$ {
    /** @deprecated use `Draft$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Draft, z.ZodTypeDef, unknown>;
    /** @deprecated use `Draft$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Draft$Outbound, z.ZodTypeDef, Draft>;
    /** @deprecated use `Draft$Outbound` instead. */
    type Outbound = Draft$Outbound;
}
export declare function draftToJSON(draft: Draft): string;
export declare function draftFromJSON(jsonString: string): SafeParseResult<Draft, SDKValidationError>;
/** @internal */
export declare const Campaign4$inboundSchema: z.ZodType<Campaign4, z.ZodTypeDef, unknown>;
/** @internal */
export type Campaign4$Outbound = {};
/** @internal */
export declare const Campaign4$outboundSchema: z.ZodType<Campaign4$Outbound, z.ZodTypeDef, Campaign4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Campaign4$ {
    /** @deprecated use `Campaign4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Campaign4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Campaign4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Campaign4$Outbound, z.ZodTypeDef, Campaign4>;
    /** @deprecated use `Campaign4$Outbound` instead. */
    type Outbound = Campaign4$Outbound;
}
export declare function campaign4ToJSON(campaign4: Campaign4): string;
export declare function campaign4FromJSON(jsonString: string): SafeParseResult<Campaign4, SDKValidationError>;
/** @internal */
export declare const CampaignSourceValue$inboundSchema: z.ZodType<CampaignSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type CampaignSourceValue$Outbound = Campaign4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const CampaignSourceValue$outboundSchema: z.ZodType<CampaignSourceValue$Outbound, z.ZodTypeDef, CampaignSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignSourceValue$ {
    /** @deprecated use `CampaignSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignSourceValue$Outbound, z.ZodTypeDef, CampaignSourceValue>;
    /** @deprecated use `CampaignSourceValue$Outbound` instead. */
    type Outbound = CampaignSourceValue$Outbound;
}
export declare function campaignSourceValueToJSON(campaignSourceValue: CampaignSourceValue): string;
export declare function campaignSourceValueFromJSON(jsonString: string): SafeParseResult<CampaignSourceValue, SDKValidationError>;
/** @internal */
export declare const CampaignValue$inboundSchema: z.ZodType<CampaignValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const CampaignValue$outboundSchema: z.ZodType<CampaignValueOpen, z.ZodTypeDef, CampaignValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignValue$ {
    /** @deprecated use `CampaignValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignValueOpen, z.ZodTypeDef, CampaignValueOpen>;
}
/** @internal */
export declare const ScheduleType$inboundSchema: z.ZodType<ScheduleType, z.ZodTypeDef, unknown>;
/** @internal */
export type ScheduleType$Outbound = {
    source_value?: Campaign4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const ScheduleType$outboundSchema: z.ZodType<ScheduleType$Outbound, z.ZodTypeDef, ScheduleType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ScheduleType$ {
    /** @deprecated use `ScheduleType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ScheduleType, z.ZodTypeDef, unknown>;
    /** @deprecated use `ScheduleType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ScheduleType$Outbound, z.ZodTypeDef, ScheduleType>;
    /** @deprecated use `ScheduleType$Outbound` instead. */
    type Outbound = ScheduleType$Outbound;
}
export declare function scheduleTypeToJSON(scheduleType: ScheduleType): string;
export declare function scheduleTypeFromJSON(jsonString: string): SafeParseResult<ScheduleType, SDKValidationError>;
/** @internal */
export declare const CampaignSchemas4$inboundSchema: z.ZodType<CampaignSchemas4, z.ZodTypeDef, unknown>;
/** @internal */
export type CampaignSchemas4$Outbound = {};
/** @internal */
export declare const CampaignSchemas4$outboundSchema: z.ZodType<CampaignSchemas4$Outbound, z.ZodTypeDef, CampaignSchemas4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignSchemas4$ {
    /** @deprecated use `CampaignSchemas4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignSchemas4, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignSchemas4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignSchemas4$Outbound, z.ZodTypeDef, CampaignSchemas4>;
    /** @deprecated use `CampaignSchemas4$Outbound` instead. */
    type Outbound = CampaignSchemas4$Outbound;
}
export declare function campaignSchemas4ToJSON(campaignSchemas4: CampaignSchemas4): string;
export declare function campaignSchemas4FromJSON(jsonString: string): SafeParseResult<CampaignSchemas4, SDKValidationError>;
/** @internal */
export declare const CampaignSchemasSourceValue$inboundSchema: z.ZodType<CampaignSchemasSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type CampaignSchemasSourceValue$Outbound = CampaignSchemas4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const CampaignSchemasSourceValue$outboundSchema: z.ZodType<CampaignSchemasSourceValue$Outbound, z.ZodTypeDef, CampaignSchemasSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignSchemasSourceValue$ {
    /** @deprecated use `CampaignSchemasSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignSchemasSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignSchemasSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignSchemasSourceValue$Outbound, z.ZodTypeDef, CampaignSchemasSourceValue>;
    /** @deprecated use `CampaignSchemasSourceValue$Outbound` instead. */
    type Outbound = CampaignSchemasSourceValue$Outbound;
}
export declare function campaignSchemasSourceValueToJSON(campaignSchemasSourceValue: CampaignSchemasSourceValue): string;
export declare function campaignSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<CampaignSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const CampaignSchemasValue$inboundSchema: z.ZodType<CampaignSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const CampaignSchemasValue$outboundSchema: z.ZodType<CampaignSchemasValueOpen, z.ZodTypeDef, CampaignSchemasValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignSchemasValue$ {
    /** @deprecated use `CampaignSchemasValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignSchemasValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignSchemasValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignSchemasValueOpen, z.ZodTypeDef, CampaignSchemasValueOpen>;
}
/** @internal */
export declare const CampaignStatus$inboundSchema: z.ZodType<CampaignStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type CampaignStatus$Outbound = {
    source_value?: CampaignSchemas4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const CampaignStatus$outboundSchema: z.ZodType<CampaignStatus$Outbound, z.ZodTypeDef, CampaignStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CampaignStatus$ {
    /** @deprecated use `CampaignStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CampaignStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `CampaignStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CampaignStatus$Outbound, z.ZodTypeDef, CampaignStatus>;
    /** @deprecated use `CampaignStatus$Outbound` instead. */
    type Outbound = CampaignStatus$Outbound;
}
export declare function campaignStatusToJSON(campaignStatus: CampaignStatus): string;
export declare function campaignStatusFromJSON(jsonString: string): SafeParseResult<CampaignStatus, SDKValidationError>;
/** @internal */
export declare const Campaign$inboundSchema: z.ZodType<Campaign, z.ZodTypeDef, unknown>;
/** @internal */
export type Campaign$Outbound = {
    archived?: boolean | string | null | undefined;
    channels?: Array<ChannelsEnum$Outbound> | null | undefined;
    created_at?: string | null | undefined;
    description?: string | null | undefined;
    draft?: boolean | string | null | undefined;
    first_sent_at?: string | null | undefined;
    id?: string | null | undefined;
    last_sent_at?: string | null | undefined;
    messages?: Array<Message$Outbound> | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
    schedule_type?: ScheduleType$Outbound | null | undefined;
    status?: CampaignStatus$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Campaign$outboundSchema: z.ZodType<Campaign$Outbound, z.ZodTypeDef, Campaign>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Campaign$ {
    /** @deprecated use `Campaign$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Campaign, z.ZodTypeDef, unknown>;
    /** @deprecated use `Campaign$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Campaign$Outbound, z.ZodTypeDef, Campaign>;
    /** @deprecated use `Campaign$Outbound` instead. */
    type Outbound = Campaign$Outbound;
}
export declare function campaignToJSON(campaign: Campaign): string;
export declare function campaignFromJSON(jsonString: string): SafeParseResult<Campaign, SDKValidationError>;
//# sourceMappingURL=campaign.d.ts.map