/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import type { ReactNode } from 'react';
export interface FieldValidationConfigureParam {
    key: string;
    label: ReactNode;
    componentType?: 'checkbox' | 'datePicker' | 'inputNumber' | 'multipleSelect' | 'radio' | 'singleSelect' | 'text';
    defaultValue?: unknown;
    options?: Array<{
        label: ReactNode;
        value: string | number | boolean;
    }>;
    required?: boolean;
}
export interface FieldValidationConfigureItem {
    key: string;
    label: ReactNode;
    hasValue?: boolean;
    params?: FieldValidationConfigureParam[];
    paramsType?: string;
}
export type FieldValidationConfigureInput = FieldValidationConfigureItem | string;
export declare function RangeValidationItems(valueKind: 'date' | 'number'): FieldValidationConfigureItem[];
export declare class FieldValidationConfigureRegistry {
    protected items: Map<string, FieldValidationConfigureItem>;
    protected groups: Map<string, FieldValidationConfigureInput[]>;
    register(item: FieldValidationConfigureItem): void;
    registerMany(items?: FieldValidationConfigureItem[]): void;
    registerGroup(name: string, items?: FieldValidationConfigureInput[]): void;
    addToGroup(name: string, items?: FieldValidationConfigureInput[]): void;
    get(name: string): FieldValidationConfigureItem;
    getGroup(name: string): FieldValidationConfigureItem[];
}
export declare const fieldValidationConfigureRegistry: FieldValidationConfigureRegistry;
export declare function registerFieldValidationConfigure(item: FieldValidationConfigureItem): void;
export declare function registerFieldValidationConfigureGroup(name: string, items?: FieldValidationConfigureInput[]): void;
export declare function addFieldValidationConfiguresToGroup(name: string, items?: FieldValidationConfigureInput[]): void;
