import { VNode, Slots, VNodeChild, ComputedRef } from 'vue';
import { Task } from '../../../../models/classes/Task';
import { TaskListColumnConfig } from '../../../../models/configs/TaskListConfig';
/**
 * 声明式列配置接口
 * 从 task-list-column 组件解析出的列配置
 */
export interface DeclarativeColumnConfig {
    prop?: string;
    label?: string;
    width?: number | string;
    align?: 'left' | 'center' | 'right';
    cssClass?: string;
    /** 列固定位置 */
    fixed?: 'left' | 'right' | boolean;
    headerSlot?: () => VNodeChild;
    defaultSlot?: (scope: {
        row: Task;
        $index: number;
    }) => VNodeChild;
}
/**
 * 从 VNode 中提取 task-list-column 的配置
 */
export declare function extractColumnConfig(vnode: VNode): DeclarativeColumnConfig | null;
/**
 * 解析声明式列配置
 * 从默认 slot 的 VNode 中提取所有 task-list-column 的配置
 */
export declare function parseDeclarativeColumns(slots: Slots): DeclarativeColumnConfig[]; /**
 * Task List Columns Composable
 * 用于管理任务列表的列配置（支持声明式和配置式）
 */
export declare function useTaskListColumns(renderMode: ComputedRef<'default' | 'declarative'> | 'default' | 'declarative', slots: Slots, defaultColumns?: TaskListColumnConfig[]): {
    declarativeColumns: import('vue').ShallowRef<DeclarativeColumnConfig[], DeclarativeColumnConfig[]>;
    finalColumns: ComputedRef<TaskListColumnConfig[] | DeclarativeColumnConfig[]>;
    getColumnWidthStyle: (column: {
        width?: number | string;
    }, containerWidth?: number) => {
        flex?: undefined;
        minWidth?: undefined;
        maxWidth?: undefined;
    } | {
        flex: string;
        minWidth: string;
        maxWidth: string;
    };
    getColumnAlignStyle: (align?: "left" | "center" | "right") => {
        justifyContent?: undefined;
        textAlign?: undefined;
    } | {
        justifyContent: string;
        textAlign: "right" | "center";
    };
};
