import React from 'react';
import { SchemaInitializer, SchemaInitializerItemType } from '@tachybase/client';
import { ISchema } from '@tachybase/schema';
import { Registry } from '@tego/client';
import { JOB_STATUS } from '../../../constants';
type ValueOf<T> = T[keyof T];
export type FormType = {
    type: 'create' | 'update' | 'custom';
    title: string;
    actions: ValueOf<typeof JOB_STATUS>[];
    collection: string | {
        name: string;
        fields: any[];
        [key: string]: any;
    };
};
export type ManualFormType = {
    title: string;
    config: {
        useInitializer: ({ allCollections }?: {
            allCollections: any[];
        }) => SchemaInitializerItemType;
        initializers?: {
            [key: string]: React.FC;
        };
        components?: {
            [key: string]: React.FC;
        };
        parseFormOptions(root: ISchema): {
            [key: string]: FormType;
        };
    };
    block: {
        scope?: {
            [key: string]: () => any;
        };
        components?: {
            [key: string]: React.FC;
        };
    };
};
export declare const manualFormTypes: Registry<ManualFormType>;
export declare const addBlockButton: SchemaInitializer<import("antd").ButtonProps, {}>;
export declare const addActionButton: SchemaInitializer<import("antd").ButtonProps, {}>;
export declare function SchemaConfig({ value, onChange }: {
    value: any;
    onChange: any;
}): import("react/jsx-runtime").JSX.Element;
export declare function SchemaConfigButton(props: any): import("react/jsx-runtime").JSX.Element;
export {};
