import type { BasicMetaSysProps, DefaultElements, GetEntryParams, GetTaskParams, Link, MakeRequest, SysLink } from '../common-types';
export type TaskStatus = 'active' | 'resolved';
export type TaskSysProps = Pick<BasicMetaSysProps, 'id' | 'version' | 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy'> & {
    type: 'Task';
    space: SysLink;
    environment: SysLink;
    parentEntity: Link<'Entry'>;
};
export type TaskProps = {
    sys: TaskSysProps;
    body: string;
    assignedTo: Link<'User' | 'Team'>;
    status: TaskStatus;
    dueDate?: string;
};
export type CreateTaskProps = Omit<TaskProps, 'sys'>;
export type UpdateTaskProps = Omit<TaskProps, 'sys'> & {
    sys: Pick<TaskSysProps, 'version'>;
};
export type CreateTaskParams = GetEntryParams;
export type UpdateTaskParams = GetTaskParams;
export type DeleteTaskParams = GetTaskParams & {
    version: number;
};
type TaskApi = {
    update(): Promise<Task>;
    delete(): Promise<void>;
};
export interface Task extends TaskProps, DefaultElements<TaskProps>, TaskApi {
}
/**
 * @internal
 */
export default function createTaskApi(makeRequest: MakeRequest): TaskApi;
/**
 * @internal
 */
export declare function wrapTask(makeRequest: MakeRequest, data: TaskProps): Task;
/**
 * @internal
 */
export declare const wrapTaskCollection: (makeRequest: MakeRequest, data: import("..").CollectionProp<TaskProps>) => import("..").Collection<Task, TaskProps>;
export {};
