import { CubeButtonProps } from '../../actions';
import { CubeFormProps, FieldTypes } from '../../form';
import { CubeDialogProps } from './Dialog';
export interface CubeDialogFormProps<T extends FieldTypes = FieldTypes> extends Omit<CubeDialogProps, 'children'>, Omit<CubeFormProps<T>, 'role' | 'children'> {
    /** Whether the submit button has a `danger` theme */
    danger?: boolean;
    /** Properties for submit button. Use `label` to change text. */
    submitProps?: CubeButtonProps;
    /** Properties for cancel button. Use `label` to change text. */
    cancelProps?: CubeButtonProps;
    /** WIP. Preserve form values even if field is deleted */
    preserve?: boolean;
    /** Whether to hide action button so developer can manually specify them */
    noActions?: boolean;
    /** The title of the dialog */
    title?: string;
    /** Children nodes or render function  */
    children?: CubeFormProps['children'] | ((onLocalDismiss: () => void) => CubeFormProps['children']);
}
export interface CubeDialogFormRef {
    open: () => void;
    close: () => void;
}
/**
 * DialogForms are a specific type of Dialog. They contain forms to fill.
 */
export declare function DialogForm<T extends FieldTypes = FieldTypes>(props: CubeDialogFormProps<T>): import("react/jsx-runtime").JSX.Element;
