import { BaseSyntheticEvent } from 'react';
import { ActionTriggerType, Automation, Milestone, PlayBookObject, SegmentType, Signal } from '@parlor/common';
import { ServiceReturnType } from '@parlor/contexts/services-2';
import { PartialWithId } from '@parlor/services';
export declare enum ChooseAutomationModalType {
    Email = "email",
    Integration = "integration",
    Journey = "journey",
    ListOrSequence = "listOrSequence",
    Notification = "notification",
    Opportunity = "opportunity",
    Playbook = "playbook",
    Survey = "Survey",
    Task = "task"
}
type IUser = {
    accounts?: Array<{
        displayName?: string;
        id: string;
    }>;
    id: string;
};
export declare namespace IChooseAutomation {
    type SignalProps = PartialWithId<Pick<Signal, 'id' | 'name' | 'queryLiteral' | 'segments' | 'signalAutomationType'>>;
    type Variant = 'dynamicScoreValue' | 'signal' | 'segment' | 'playbook' | 'user';
    type HiddenAutomations = Partial<Record<ChooseAutomationModalType, boolean>>;
    namespace Actions {
        type OnClose = (e?: BaseSyntheticEvent) => void;
        type OnDelete = () => Promise<unknown> | unknown;
        type OnAfterSubmit = <T>(values: T) => Promise<unknown> | unknown;
        type OverrideSave = <T>(values: T) => Promise<unknown> | unknown;
    }
    type Props = {
        accountOrUserType?: SegmentType | PlayBookObject;
        header?: JSX.Element;
        hiddenAutomations?: HiddenAutomations;
        id: string;
        isStartingPlaybookBranch?: boolean;
        onClose?: (e?: BaseSyntheticEvent) => void;
        onOverrideSave?: Actions.OverrideSave;
        signal?: SignalProps;
        triggerType?: ActionTriggerType;
        variant: Variant;
    };
    type ModalProps = {
        accountOrUserType?: SegmentType | PlayBookObject;
        action?: ServiceReturnType<'action', 'useList'>['data']['list']['edges'][number]['node'];
        automation?: Partial<Automation>;
        id: string;
        isHideDelete?: boolean;
        isStartingPlaybookBranch?: boolean;
        milestone?: Partial<Milestone>;
        milestoneOptions?: Partial<Milestone>[];
        onAfterDelete?: Actions.OnDelete;
        onAfterSubmit?: Actions.OnAfterSubmit;
        onClose?: Actions.OnClose;
        onOverrideSave?: Actions.OverrideSave;
        signal?: SignalProps;
        submitButtonText?: string;
        triggerType?: ActionTriggerType;
        user?: IUser;
        variant: IChooseAutomation.Variant;
    };
}
export {};
