import { TableColumn } from '../types/table';
import { LogicalQuery } from '../types/workbook';
import { ColumnFormatOverride } from '../types/report-format';
import { ChartColumn } from '../types/chart';
import { DataAssetMember } from '../types/data-assets';

export interface TableDataItem {
    [key: string]: any;
}
export interface ColumnSchema {
    name: string;
    column_type: string;
}
export type ColumnType = 'time' | 'number' | 'string' | 'boolean';
/**
 * Clean column name by removing view name prefix and parentheses
 * @param columnName - The original column name (e.g., "view.column_name(param)")
 * @returns The cleaned column name (e.g., "column_name")
 */
export declare const cleanColumnName: (columnName: string) => string;
export declare const isNameOrAlias: (member: any, cleanedColumnName: string) => boolean;
export declare const resolveMemberInfo: (cleanedColumnName: string, logicalQuery?: LogicalQuery, columnSchema?: ColumnSchema) => {
    actualMemberName: string;
    memberTitle: string | undefined;
    isCustomMember: boolean;
    grain?: string | undefined;
    columnType?: ColumnType | undefined;
    memberType?: "measure" | "dimension" | undefined;
    format?: ((value: string) => string) | undefined;
    formatString?: string | undefined;
};
/**
 * Prepare columns for chart components by cleaning field names for display
 * while preserving original names for functionality
 */
export interface PrepareChartColumnsParams {
    schema: ColumnSchema[];
    logicalQuery?: LogicalQuery;
    useMemberTitles?: boolean;
    dataAssetMembers?: DataAssetMember[];
    columnFormats?: Record<string, ColumnFormatOverride> | null;
}
export declare const prepareChartColumns: ({ schema, logicalQuery, useMemberTitles, dataAssetMembers, columnFormats, }: PrepareChartColumnsParams) => ChartColumn[];
export interface PrepareTableDataParams {
    data: any[];
    schema: ColumnSchema[];
    logicalQuery?: LogicalQuery;
    columnWidths?: {
        [id: string]: number;
    } | null;
    columnFormats?: Record<string, ColumnFormatOverride> | null;
    columnOrder?: string[] | null;
    useMemberTitles?: boolean;
    pivots?: string[];
    isAutoRunEnabled?: boolean;
    dataAssetMembers?: DataAssetMember[];
}
export declare const prepareTableData: ({ data, schema, logicalQuery, columnWidths, columnFormats, columnOrder, useMemberTitles, pivots, isAutoRunEnabled, dataAssetMembers, }: PrepareTableDataParams) => {
    data: TableDataItem[];
    columns: TableColumn[];
    pivots: {
        title: string;
        key: string;
        columnType: ColumnType | undefined;
        isCustom: boolean;
        actualMemberName: string;
    }[];
};
//# sourceMappingURL=data-prep-utils.d.ts.map