/// <reference types="react" />
import { Priority } from '@parlor/common';
import { ModelWithId, ModelWithName, RenderAdminSelectorProps } from '@parlor/components';
import { ServiceReturnType, Services } from '@parlor/contexts/services-2';
export declare namespace ITicket {
    type GetModel = ServiceReturnType<'ticket', 'list'>['edges'][number]['node'];
    type Model = ServiceReturnType<'ticket', 'list'>['edges'][number]['node'];
    type HandleUpdate = (input: Partial<Parameters<Services['ticket']['update']>[0]> & {
        id: string;
    }) => Promise<unknown>;
    type SidebarFormValues = {
        description?: string;
        externalIDs: GetModel['externalIDs'];
        owner?: RenderAdminSelectorProps;
        priority?: GetModel['priority'];
        source?: string;
        status?: GetModel['status'];
        subject?: string;
        ticketSubType?: GetModel['ticketSubType'];
        ticketType?: GetModel['ticketType'];
        userOrAccount: ModelWithId;
    };
    type FormValues = {
        description: string;
        owner: ModelWithId;
        priority: {
            id: Priority.None;
            label: string;
            level: number;
        };
        subject: string;
        ticketSubType: ModelWithName;
        ticketType: ModelWithName;
        userOrAccount: ModelWithId;
    };
}
export declare enum TicketsHeaderId {
    account = "account",
    description = "description",
    endDate = "endDate",
    externalKeys = "externalIDs",
    owner = "owner",
    priority = "priority",
    status = "status",
    subType = "subType",
    subject = "subject",
    submittedDate = "submittedDate",
    teamMemberSubmitted = "teamMemberSubmitted",
    ticketKey = "id",
    type = "type",
    user = "user"
}
export type ISortableHeader = {
    canBeHidden?: boolean;
    cell: JSX.Element;
    id: string;
    isSortable?: boolean;
    name: string;
    title: string;
};
export type ITicketStatus = {
    id: string;
    name: string;
};
