/**
 * 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, MultiRecordResource } from '@nocobase/flow-engine';
import React from 'react';
import { AssociationFieldModel } from './AssociationFieldModel';
type CascadeHydrateStatus = 'pending' | 'done';
export declare function collectCascadeHydrationCandidate(options: {
    value: any;
    valueKey: string;
    labelKey?: string;
    labelKeys?: string[];
    statusMap: Map<string, CascadeHydrateStatus>;
}): {
    item: Record<string, any>;
    tk: any;
    tkKey: string;
} | null;
export declare function markCascadeHydrationDone(statusMap: Map<string, CascadeHydrateStatus>, tkKey: string | null | undefined): void;
export declare function buildDisplayPathFromValue(value: any, labelKeyOrKeys: string | string[]): string[];
export declare function findOptionPathByTk(options: any[], tk: any, valueKey: string): any[];
export declare class CascadeSelectInnerFieldModel extends AssociationFieldModel {
    resource: MultiRecordResource;
    get collectionField(): CollectionField;
    onInit(options: any): void;
    set onPopupScroll(fn: any);
    set onDropdownVisibleChange(fn: any);
    set onSearch(fn: any);
    set onLoadData(fn: any);
    setDataSource(dataSource: any): void;
    getDataSource(): any;
    getFilterValue(): any;
}
export declare class CascadeSelectFieldModel extends CascadeSelectInnerFieldModel {
    render(): React.JSX.Element;
}
export declare class CascadeSelectListFieldModel extends CascadeSelectInnerFieldModel {
    render(): React.JSX.Element;
}
export {};
