/**
 * 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 _ from 'lodash';
import type { HiddenPopupHostRuntime, HiddenPopupOpenViewNormalizer } from './hidden-popup-calendar';
export declare const KANBAN_POPUP_ACTION_UID_SUFFIX_BY_KEY: {
    readonly quickCreateAction: "-quick-create-action";
    readonly cardViewAction: "-card-view-action";
};
export declare const KANBAN_POPUP_ACTION_KEYS: ("quickCreateAction" | "cardViewAction")[];
export type KanbanPopupActionKey = (typeof KANBAN_POPUP_ACTION_KEYS)[number];
export declare const KANBAN_BLOCK_POPUP_PROP_KEYS: readonly ["popupMode", "popupSize", "popupTemplateUid", "popupPageModelClass", "popupTargetUid", "quickCreatePopupSettings"];
export declare const KANBAN_CARD_POPUP_PROP_KEYS: readonly ["openMode", "popupSize", "popupTemplateUid", "pageModelClass", "popupTargetUid", "cardPopupSettings"];
export declare function normalizeKanbanPopupSettings(actionKey: KanbanPopupActionKey, popupSettings?: Record<string, any>, blockUid?: string): Record<string, any>;
export declare function getKanbanInitialPopupSettings(actionKey: KanbanPopupActionKey, settings?: Record<string, any>, blockUid?: string): Record<string, any>;
export declare function getKanbanInitialPopupSettingsFromProps(actionKey: KanbanPopupActionKey, props?: Record<string, any>, blockUid?: string): Record<string, any>;
export declare function getKanbanPopupActionUse(actionKey: KanbanPopupActionKey): "KanbanQuickCreateActionModel" | "KanbanCardViewActionModel";
export declare function getKanbanPopupActionUid(kanbanUid: string, actionKey: KanbanPopupActionKey): string;
export declare function getKanbanBlockResourceInit(blockNode: any): any;
export declare function buildKanbanInitialStepParams(input: {
    stepParams?: Record<string, any>;
    props?: Record<string, any>;
    settings?: Record<string, any>;
}): Record<string, any>;
export declare function buildKanbanInitialItemProps(input: {
    props?: Record<string, any>;
    settings?: Record<string, any>;
}): _.Dictionary<any>;
export declare function buildKanbanInitialItemStepParams(input: {
    stepParams?: Record<string, any>;
    props?: Record<string, any>;
    settings?: Record<string, any>;
}): Record<string, any>;
export declare function getKanbanPopupStoredSettings(blockNode: any, actionKey: KanbanPopupActionKey): Record<string, any>;
export declare function buildKanbanPopupOpenView(input: {
    blockNode: any;
    actionKey: KanbanPopupActionKey;
    resourceInit?: Record<string, any>;
    popupSettings?: Record<string, any>;
}): _.Dictionary<any>;
export declare function normalizeKanbanPopupConfigureValue(input: {
    actionName: string;
    blockUid: string;
    actionKey: KanbanPopupActionKey;
    value: any;
    transaction?: any;
    normalizeOpenView: HiddenPopupOpenViewNormalizer;
}): Promise<Record<string, any>>;
export declare function resolveKanbanInitialPopupOverride(settings: Record<string, any> | undefined, primaryKey: 'quickCreatePopup' | 'cardPopup', legacyKey: 'quickCreatePopupSettings' | 'cardPopupSettings'): any;
export declare function mergeKanbanPopupSettings(actionKey: KanbanPopupActionKey, current: any, value: any, blockUid?: string): Record<string, any>;
export declare function stripKanbanPopupTargetSettingsForResourceChange(actionKey: KanbanPopupActionKey, popupSettings?: Record<string, any>, blockUid?: string): Record<string, any>;
export declare function replaceKanbanStoredPopupSettings(runtime: Pick<HiddenPopupHostRuntime, 'repository'>, blockNode: any, actionKey: KanbanPopupActionKey, popupSettings: Record<string, any>, transaction?: any): Promise<void>;
export declare function ensureKanbanBlockPopupHosts(runtime: HiddenPopupHostRuntime, blockNode: any, transaction?: any, popupSettingsOverrides?: Partial<Record<KanbanPopupActionKey, Record<string, any> | undefined>>, options?: {
    displayFallbackOpenViews?: Partial<Record<KanbanPopupActionKey, Record<string, any> | undefined>>;
}): Promise<any>;
export declare function projectKanbanBlockPopupHosts<T = any>(node: T): T;
export declare function projectKanbanBlockPopupHostsInTree<T = any>(node: T): T;
