import React from 'react';
import { PropertyMap } from '@parlor/common';
import { FormSearchSelectorBoxProps, priorities } from '@parlor/components';
import { TICKET_SUBTYPES, TICKET_TYPES } from '../../../constants';
import { ITicket, ITicketStatus } from '../../../tickets.types';
type ModelWithId<T = Record<string, unknown>> = T & {
    [key: string]: any;
    id: string;
};
type ModelWithDisplayName<T = Record<string, any>> = ModelWithId<{
    displayName?: string;
}> & T;
type RenderUserSelectorProps = ModelWithId<{
    __typename?: string;
    accounts?: ModelWithDisplayName[];
    displayName?: string;
    email?: string;
    fullName?: string;
    userAccounts?: string;
}>;
type TicketFormProps = {
    hasMoreProperties?: boolean;
    loadMoreProperties?: () => void;
    onClose?: () => void;
    openAccountSidebar?: (id: string) => void;
    openUserSidebar?: (id: string) => void;
    propertyMaps?: PropertyMap[];
    ticket: ITicket.GetModel;
    type?: 'ticket' | 'pullout';
};
export declare const ticketTypeTransform: FormSearchSelectorBoxProps<(typeof TICKET_TYPES)[number]>['transform'];
export declare const ticketSubTypeTransform: FormSearchSelectorBoxProps<(typeof TICKET_SUBTYPES)[number]>['transform'];
export declare const priorityTransform: FormSearchSelectorBoxProps<(typeof priorities)[number]>['transform'];
export declare const getTranformedStatus: (statusList: ITicketStatus[]) => {
    input: (value: any) => string;
    output: (value: string) => any;
};
export declare const FormUserOrAccountSelectorForTickets: React.NamedExoticComponent<Partial<FormSearchSelectorBoxProps<RenderUserSelectorProps>>>;
export declare function TicketForm({ ticket, openUserSidebar, openAccountSidebar }: TicketFormProps): JSX.Element;
export {};
