import type { ButtonProps } from "@calcom/ui/components/button";
type FormField = {
    identifier?: string;
    id: string;
    type: string;
    label: string;
    routerId?: string | null;
};
type RoutingForm = {
    id: string;
    name: string;
    disabled: boolean;
    fields?: FormField[];
};
export type NewFormDialogState = {
    action: "new" | "duplicate";
    target: string | null;
} | null;
export type SetNewFormDialogState = React.Dispatch<React.SetStateAction<NewFormDialogState>>;
export declare const FormActionsDropdown: ({ children, disabled, }: {
    disabled?: boolean;
    children: React.ReactNode;
}) => JSX.Element;
interface FormActionsProviderProps {
    appUrl: string;
    children: React.ReactNode;
    newFormDialogState: NewFormDialogState;
    setNewFormDialogState: SetNewFormDialogState;
}
export declare function FormActionsProvider({ appUrl, children, newFormDialogState, setNewFormDialogState, }: FormActionsProviderProps): JSX.Element;
type FormActionType = "preview" | "incompleteBooking" | "edit" | "copyLink" | "toggle" | "_delete" | "embed" | "duplicate" | "download" | "copyRedirectUrl" | "viewResponses" | "create";
type FormActionProps<T> = {
    routingForm: RoutingForm | null;
    as?: T;
    label?: string;
    action: FormActionType;
    children?: React.ReactNode;
    render?: (props: {
        routingForm: RoutingForm | null;
        className?: string;
        label?: string;
        disabled?: boolean | null | undefined;
    }) => JSX.Element;
    extraClassNames?: string;
} & ButtonProps;
export declare const FormAction: import("react").ForwardRefExoticComponent<FormActionProps<import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>> & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
export {};
//# sourceMappingURL=FormActions.d.ts.map