import { EventObject, StateMachine, Typestate } from '@xstate/fsm'; import { RequestStatusFlow } from '../../interfaces'; import { Element } from '../element'; export declare const REQUEST_STATUS: { NEW: string; OPEN: string; IN_PROGRESS: string; ON_HOLD: string; CLOSED: string; CANCELLED: string; REJECTED: string; COMPLETED: string; }; export declare const REQUEST_APPROVAL_STATUS: { APPROVED: string; NEEDS_CHANGES: string; REJECTED: string; }; export declare class Request extends Element { static get TYPE(): string; static get ATTRIBUTES(): { APPROVERS: string; ASSIGNEES: string; CHECKLIST: string; COORDINATES: string; DESCRIPTION: string; ELEMENTS: string; FILES: string; IS_INCOMPLETE: string; REQUEST_APPROVAL_STATUS: string; REQUEST_DUE_DATE: string; REQUEST_STATUS: string; EXPORT_EXECUTION: string; EXPORT_RECIPIENT_EMAILS: string; LISTING_CONFIG_ATE: string; LISTING_CONFIG_INLINE: string; REQUEST_IS_TEMPLATE: string; REQUEST_RECURRENCE: string; ELEMENT_NAME: string; ARCHIVED: string; ELEMENT_PARENT: string; }; static get SHORTNAME(): string; } type State = string; export type TicketStateMachine = StateMachine.Service>; export declare const createTicketStateMachine: (flow: RequestStatusFlow, initialState: State) => TicketStateMachine; export declare const canTransition: (currentState: State, event: string, flow: RequestStatusFlow) => boolean; export {};