import React, { FC, ReactNode } from 'react';
import { GeneralField, ISchema, Schema } from '@tachybase/schema';
import { CascaderProps, MenuItemProps, ModalFuncProps } from 'antd';
import { CollectionFieldOptions_deprecated, Designable } from '..';
import { SelectWithTitleProps } from '../common/SelectWithTitle';
import { FilterBlockType } from '../filter-provider/utils';
export interface SchemaSettingsProps {
    title?: any;
    dn?: Designable;
    field?: GeneralField;
    fieldSchema?: Schema;
    children?: ReactNode;
}
interface SchemaSettingsContextProps<T = any> {
    dn?: Designable;
    field?: GeneralField;
    fieldSchema?: Schema;
    setVisible?: any;
    visible?: any;
    template?: any;
    collectionName?: any;
    designer?: T;
}
export declare function useSchemaSettings<T = any>(): SchemaSettingsContextProps<T>;
interface SchemaSettingsProviderProps {
    dn?: Designable;
    field?: GeneralField;
    fieldSchema?: Schema;
    setVisible?: any;
    visible?: any;
    template?: any;
    collectionName?: any;
    designer?: any;
    children: React.ReactNode;
}
export declare const SchemaSettingsProvider: React.FC<SchemaSettingsProviderProps>;
export declare const SchemaSettingsDropdown: React.FC<SchemaSettingsProps>;
export declare const SchemaSettingsTemplate: (props: any) => import("react/jsx-runtime").JSX.Element;
export declare const SchemaSettingsFormItemTemplate: (props: any) => import("react/jsx-runtime").JSX.Element;
export interface SchemaSettingsItemProps extends Omit<MenuItemProps, 'title'> {
    title: string;
}
export declare const SchemaSettingsItem: FC<SchemaSettingsItemProps>;
export interface SchemaSettingsItemGroupProps {
    title?: string;
    children: any[];
}
export declare const SchemaSettingsItemGroup: FC<SchemaSettingsItemGroupProps>;
export interface SchemaSettingsSubMenuProps {
    title: string;
    eventKey?: string;
    children: any;
}
export declare const SchemaSettingsSubMenu: (props: SchemaSettingsSubMenuProps) => import("react/jsx-runtime").JSX.Element;
export declare const SchemaSettingsDivider: () => any;
export interface SchemaSettingsRemoveProps {
    confirm?: ModalFuncProps;
    removeParentsIfNoChildren?: boolean;
    breakRemoveOn?: ISchema | ((s: ISchema) => boolean);
    icon?: string;
}
export declare const SchemaSettingsRemove: FC<SchemaSettingsRemoveProps>;
interface SchemaSettingsConnectDataBlocksProps {
    type: FilterBlockType;
    emptyDescription?: string;
}
export declare const SchemaSettingsConnectDataBlocks: FC<SchemaSettingsConnectDataBlocksProps>;
export interface SchemaSettingsSelectItemProps extends Omit<SchemaSettingsItemProps, 'onChange' | 'onClick'>, Omit<SelectWithTitleProps, 'title' | 'defaultValue'> {
    value?: SelectWithTitleProps['defaultValue'];
}
export declare const SchemaSettingsSelectItem: FC<SchemaSettingsSelectItemProps>;
export type SchemaSettingsCascaderItemProps = CascaderProps<any> & Omit<MenuItemProps, 'title'> & {
    title: any;
};
export declare const SchemaSettingsCascaderItem: FC<SchemaSettingsCascaderItemProps>;
export interface SchemaSettingsSwitchItemProps extends Omit<MenuItemProps, 'onChange'> {
    title: string;
    checked?: boolean;
    onChange?: (v: boolean) => void;
}
export declare const SchemaSettingsSwitchItem: FC<SchemaSettingsSwitchItemProps>;
export interface SchemaSettingsPopupProps extends SchemaSettingsItemProps {
    schema?: ISchema;
}
export declare const SchemaSettingsPopupItem: FC<SchemaSettingsPopupProps>;
export interface SchemaSettingsActionModalItemProps extends SchemaSettingsModalItemProps, Omit<SchemaSettingsItemProps, 'onSubmit' | 'onClick'> {
    uid?: string;
    initialSchema?: ISchema;
    schema?: ISchema;
    beforeOpen?: () => void;
    maskClosable?: boolean;
}
export declare const SchemaSettingsActionModalItem: FC<SchemaSettingsActionModalItemProps>;
export interface SchemaSettingsModalItemProps {
    title: string;
    onSubmit: (values: any) => void;
    initialValues?: any;
    schema?: ISchema | (() => ISchema);
    modalTip?: string;
    components?: any;
    hidden?: boolean;
    scope?: any;
    effects?: any;
    width?: string | number;
    children?: ReactNode;
    asyncGetInitialValues?: () => Promise<any>;
    eventKey?: string;
    hide?: boolean;
    icon?: string | React.ReactNode;
}
export declare const SchemaSettingsModalItem: FC<SchemaSettingsModalItemProps>;
export declare const SchemaSettingsBlockTitleItem: () => import("react/jsx-runtime").JSX.Element;
export declare const SchemaSettingsDefaultSortingRules: (props: any) => import("react/jsx-runtime").JSX.Element;
export declare const SchemaSettingsLinkageRules: (props: any) => import("react/jsx-runtime").JSX.Element;
export declare const useDataTemplates: (schema?: Schema) => {
    templateData: any;
};
export declare const SchemaSettingsDataTemplates: (props: any) => import("react/jsx-runtime").JSX.Element;
export declare function SchemaSettingsEnableChildCollections(props: any): import("react/jsx-runtime").JSX.Element;
export declare const findParentFieldSchema: (fieldSchema: Schema) => Schema<any, any, any, any, any, any, any, any, any>;
export declare const SchemaSettingsSortField: () => import("react/jsx-runtime").JSX.Element;
export declare const isSystemField: (collectionField: CollectionFieldOptions_deprecated, getInterface: any) => boolean;
export declare function getFieldDefaultValue(fieldSchema: ISchema, collectionField: CollectionFieldOptions_deprecated): any;
export {};
