import type { HandleGroupManifest } from '../../schema/node-definition';
import type { ElementStatusValues } from '../../types/execution';
import type { HandleActionEvent, HandleMouseEvent } from '../ButtonHandle/ButtonHandle';
import type { NodeToolbarConfig } from '../Toolbar';
import type { FooterVariant, NodeAdornments } from './BaseNode.types';
export interface BaseNodeOverrideConfig {
    onHandleAction?: (event: HandleActionEvent) => void;
    onHandleMouseEnter?: (event: HandleMouseEvent) => void;
    onHandleMouseLeave?: (event: HandleMouseEvent) => void;
    onActionNeeded?: (nodeId: string) => void;
    shouldShowAddButtonFn?: (opts: {
        showAddButton: boolean;
        selected: boolean;
    }) => boolean;
    shouldShowButtonHandleNotchesFn?: (opts: {
        isConnecting: boolean;
        isSelected: boolean;
        isHovered: boolean;
    }) => boolean;
    toolbarConfig?: NodeToolbarConfig | null;
    handleConfigurations?: HandleGroupManifest[];
    adornments?: NodeAdornments;
    suggestionType?: 'add' | 'update' | 'delete';
    disabled?: boolean;
    executionStatusOverride?: ElementStatusValues;
    labelTooltip?: string;
    labelBackgroundColor?: string;
    footerVariant?: FooterVariant;
    footerComponent?: React.ReactNode;
    subLabelComponent?: React.ReactNode;
    iconComponent?: React.ReactNode;
}
export declare const BaseNodeOverrideConfigProvider: import("react").Provider<BaseNodeOverrideConfig>;
export declare function useBaseNodeOverrideConfig(): BaseNodeOverrideConfig;
//# sourceMappingURL=BaseNodeConfigContext.d.ts.map