/**
 * 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 { CollectionField, FlowModel } from '@nocobase/flow-engine';
import React from 'react';
import { FieldModel } from '../../base/FieldModel';
import { type ItemChain } from './itemChain';
import { type AssociationFieldNames } from './recordSelectShared';
export declare function canRecordPickerSelectMultiple(collectionField: {
    type?: string;
} | null | undefined, allowMultiple?: boolean): boolean;
export declare function shouldClearRecordPickerValueOnMultipleChange(collectionField: {
    type?: string;
} | null | undefined, previousAllowMultiple?: boolean, nextAllowMultiple?: boolean): boolean;
export declare function normalizeRecordPickerSelectedRows(value: unknown, allowMultiple: boolean): any[];
export declare function getRecordPickerEmptyValue(allowMultiple: boolean): any[];
export declare function getRecordPickerClearedValue(): any;
export declare function normalizeRecordPickerValue(value: unknown, fieldNames: AssociationFieldNames, allowMultiple: boolean): any[] | {
    label: unknown;
    value: unknown;
};
export declare function buildRecordPickerParentItemContext(ctx: any): {
    parentItem: ItemChain;
    parentItemMeta: any;
    parentItemResolver: ((subPath: string) => boolean) | undefined;
};
export declare function injectRecordPickerPopupContext(model: FlowModel, viewCtx: any, fieldModel?: any): void;
export declare function buildRecordPickerPopupContextInputArgs(ctx: any, options?: {
    currentItemValue?: any;
    extraInputArgs?: Record<string, any>;
}): {
    parentItem: ItemChain;
    parentItemMeta: any;
    parentItemResolver: (subPath: string) => boolean;
    currentItemValue: any;
    openerUids: string[];
};
export declare function RecordPickerContent({ model, toOne }: {
    model: any;
    toOne?: boolean;
}): React.JSX.Element;
export declare class RecordPickerFieldModel extends FieldModel {
    selectedRows: {
        value: any[];
    };
    _closeView: any;
    selectBlockModel: any;
    get collectionField(): CollectionField;
    render(): React.JSX.Element;
    onInit(option: any): void;
    protected onMount(): void;
    set onClick(fn: any);
    change(): void;
}
