import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type TaskId = {
    /**
     * The ID of the workspace the task belongs to.
     */
    workspaceId: string;
    /**
     * The ID of the task.
     */
    taskId: string;
};
export type LinkedRecord = {
    /**
     * The ID of the parent object the task refers to. At present, only `people` and `companies` are supported.
     */
    targetObjectId: string;
    /**
     * The ID of the parent record the task refers to.
     */
    targetRecordId: string;
};
/**
 * The type of actor. [Read more information on actor types here](/docs/actors).
 */
export declare const TaskReferencedActorType: {
    readonly ApiToken: "api-token";
    readonly WorkspaceMember: "workspace-member";
    readonly System: "system";
    readonly App: "app";
};
/**
 * The type of actor. [Read more information on actor types here](/docs/actors).
 */
export type TaskReferencedActorType = ClosedEnum<typeof TaskReferencedActorType>;
export type Assignee = {
    /**
     * The type of actor. [Read more information on actor types here](/docs/actors).
     */
    referencedActorType: TaskReferencedActorType;
    /**
     * The ID of the workspace member actor assigned to this task.
     */
    referencedActorId: string;
};
/**
 * The type of actor. [Read more information on actor types here](/docs/actors).
 */
export declare const TaskType: {
    readonly ApiToken: "api-token";
    readonly WorkspaceMember: "workspace-member";
    readonly System: "system";
    readonly App: "app";
};
/**
 * The type of actor. [Read more information on actor types here](/docs/actors).
 */
export type TaskType = ClosedEnum<typeof TaskType>;
/**
 * The actor that created this task.
 */
export type TaskCreatedByActor = {
    /**
     * An ID to identify the actor.
     */
    id?: string | null | undefined;
    /**
     * The type of actor. [Read more information on actor types here](/docs/actors).
     */
    type?: TaskType | null | undefined;
};
export type Task = {
    id: TaskId;
    /**
     * The plaintext representation of the task content. Inline linked records will appear as "@record name" and are returned in the `linked_records` property.
     */
    contentPlaintext: string;
    /**
     * The deadline date of the task. Returned as an ISO 8601 timestamp.
     */
    deadlineAt: string | null;
    /**
     * Whether the task has been completed.
     */
    isCompleted: boolean;
    /**
     * Records linked to the task. Creating record links within task content text is not possible via the API at present.
     */
    linkedRecords: Array<LinkedRecord>;
    /**
     * Workspace members assigned to this task.
     */
    assignees: Array<Assignee>;
    /**
     * The actor that created this task.
     */
    createdByActor: TaskCreatedByActor;
    /**
     * When the task was created.
     */
    createdAt: string;
};
/** @internal */
export declare const TaskId$inboundSchema: z.ZodType<TaskId, z.ZodTypeDef, unknown>;
/** @internal */
export type TaskId$Outbound = {
    workspace_id: string;
    task_id: string;
};
/** @internal */
export declare const TaskId$outboundSchema: z.ZodType<TaskId$Outbound, z.ZodTypeDef, TaskId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TaskId$ {
    /** @deprecated use `TaskId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TaskId, z.ZodTypeDef, unknown>;
    /** @deprecated use `TaskId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TaskId$Outbound, z.ZodTypeDef, TaskId>;
    /** @deprecated use `TaskId$Outbound` instead. */
    type Outbound = TaskId$Outbound;
}
export declare function taskIdToJSON(taskId: TaskId): string;
export declare function taskIdFromJSON(jsonString: string): SafeParseResult<TaskId, SDKValidationError>;
/** @internal */
export declare const LinkedRecord$inboundSchema: z.ZodType<LinkedRecord, z.ZodTypeDef, unknown>;
/** @internal */
export type LinkedRecord$Outbound = {
    target_object_id: string;
    target_record_id: string;
};
/** @internal */
export declare const LinkedRecord$outboundSchema: z.ZodType<LinkedRecord$Outbound, z.ZodTypeDef, LinkedRecord>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LinkedRecord$ {
    /** @deprecated use `LinkedRecord$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LinkedRecord, z.ZodTypeDef, unknown>;
    /** @deprecated use `LinkedRecord$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LinkedRecord$Outbound, z.ZodTypeDef, LinkedRecord>;
    /** @deprecated use `LinkedRecord$Outbound` instead. */
    type Outbound = LinkedRecord$Outbound;
}
export declare function linkedRecordToJSON(linkedRecord: LinkedRecord): string;
export declare function linkedRecordFromJSON(jsonString: string): SafeParseResult<LinkedRecord, SDKValidationError>;
/** @internal */
export declare const TaskReferencedActorType$inboundSchema: z.ZodNativeEnum<typeof TaskReferencedActorType>;
/** @internal */
export declare const TaskReferencedActorType$outboundSchema: z.ZodNativeEnum<typeof TaskReferencedActorType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TaskReferencedActorType$ {
    /** @deprecated use `TaskReferencedActorType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly ApiToken: "api-token";
        readonly WorkspaceMember: "workspace-member";
        readonly System: "system";
        readonly App: "app";
    }>;
    /** @deprecated use `TaskReferencedActorType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly ApiToken: "api-token";
        readonly WorkspaceMember: "workspace-member";
        readonly System: "system";
        readonly App: "app";
    }>;
}
/** @internal */
export declare const Assignee$inboundSchema: z.ZodType<Assignee, z.ZodTypeDef, unknown>;
/** @internal */
export type Assignee$Outbound = {
    referenced_actor_type: string;
    referenced_actor_id: string;
};
/** @internal */
export declare const Assignee$outboundSchema: z.ZodType<Assignee$Outbound, z.ZodTypeDef, Assignee>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Assignee$ {
    /** @deprecated use `Assignee$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Assignee, z.ZodTypeDef, unknown>;
    /** @deprecated use `Assignee$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Assignee$Outbound, z.ZodTypeDef, Assignee>;
    /** @deprecated use `Assignee$Outbound` instead. */
    type Outbound = Assignee$Outbound;
}
export declare function assigneeToJSON(assignee: Assignee): string;
export declare function assigneeFromJSON(jsonString: string): SafeParseResult<Assignee, SDKValidationError>;
/** @internal */
export declare const TaskType$inboundSchema: z.ZodNativeEnum<typeof TaskType>;
/** @internal */
export declare const TaskType$outboundSchema: z.ZodNativeEnum<typeof TaskType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TaskType$ {
    /** @deprecated use `TaskType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly ApiToken: "api-token";
        readonly WorkspaceMember: "workspace-member";
        readonly System: "system";
        readonly App: "app";
    }>;
    /** @deprecated use `TaskType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly ApiToken: "api-token";
        readonly WorkspaceMember: "workspace-member";
        readonly System: "system";
        readonly App: "app";
    }>;
}
/** @internal */
export declare const TaskCreatedByActor$inboundSchema: z.ZodType<TaskCreatedByActor, z.ZodTypeDef, unknown>;
/** @internal */
export type TaskCreatedByActor$Outbound = {
    id?: string | null | undefined;
    type?: string | null | undefined;
};
/** @internal */
export declare const TaskCreatedByActor$outboundSchema: z.ZodType<TaskCreatedByActor$Outbound, z.ZodTypeDef, TaskCreatedByActor>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TaskCreatedByActor$ {
    /** @deprecated use `TaskCreatedByActor$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TaskCreatedByActor, z.ZodTypeDef, unknown>;
    /** @deprecated use `TaskCreatedByActor$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TaskCreatedByActor$Outbound, z.ZodTypeDef, TaskCreatedByActor>;
    /** @deprecated use `TaskCreatedByActor$Outbound` instead. */
    type Outbound = TaskCreatedByActor$Outbound;
}
export declare function taskCreatedByActorToJSON(taskCreatedByActor: TaskCreatedByActor): string;
export declare function taskCreatedByActorFromJSON(jsonString: string): SafeParseResult<TaskCreatedByActor, SDKValidationError>;
/** @internal */
export declare const Task$inboundSchema: z.ZodType<Task, z.ZodTypeDef, unknown>;
/** @internal */
export type Task$Outbound = {
    id: TaskId$Outbound;
    content_plaintext: string;
    deadline_at: string | null;
    is_completed: boolean;
    linked_records: Array<LinkedRecord$Outbound>;
    assignees: Array<Assignee$Outbound>;
    created_by_actor: TaskCreatedByActor$Outbound;
    created_at: string;
};
/** @internal */
export declare const Task$outboundSchema: z.ZodType<Task$Outbound, z.ZodTypeDef, Task>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Task$ {
    /** @deprecated use `Task$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Task, z.ZodTypeDef, unknown>;
    /** @deprecated use `Task$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Task$Outbound, z.ZodTypeDef, Task>;
    /** @deprecated use `Task$Outbound` instead. */
    type Outbound = Task$Outbound;
}
export declare function taskToJSON(task: Task): string;
export declare function taskFromJSON(jsonString: string): SafeParseResult<Task, SDKValidationError>;
//# sourceMappingURL=task.d.ts.map