import { ExecutionContext } from "./execution"; export declare const DATA_TABLE_STORE: unique symbol; export declare function Column(descriptor: ColumnDescriptor): (target: any, propertyKey: string) => void; export interface DataTableStore { insertRow(dataTable: DataTable, ctx: ExecutionContext, row: Row): void; getRows(dataTableName: string, scope: string): Iterable; getDataTables(): DataTable[]; } export declare class InMemoryDataTableStore implements DataTableStore { private readonly _buckets; insertRow(dataTable: DataTable, _ctx: ExecutionContext, row: Row): void; getRows(dataTableName: string, group?: string): any[]; getDataTables(): DataTable[]; } /** * Sanitize a value for a filename, byte-identical to the Java host's * {@code CsvDataTableStore.sanitize} so a shared data table resolves to the same file. */ export declare function sanitizeScope(scope: string): string; export declare class DataTable { private rowConstructor; private readonly _descriptor; private _group?; private _instanceName?; constructor(name: string, displayName: string, description: string, rowConstructor: { [key: string | symbol]: any; }); get descriptor(): DataTableDescriptor; get group(): string | undefined; set group(value: string); get instanceName(): string; set instanceName(value: string); insertRow(ctx: ExecutionContext, row: Row): void; } export interface DataTableDescriptor { name: string; displayName: string; description: string; columns: ({ name: string; } & ColumnDescriptor)[]; } export interface ColumnDescriptor { displayName: string; description: string; } /** * A DataTableStore that writes rows directly to CSV files as they are inserted. * Uses the data table's file-safe key for filenames. */ export declare class CsvDataTableStore implements DataTableStore { private readonly outputDir; private readonly prefixColumns; private readonly suffixColumns; private readonly _rowCounts; private readonly _dataTables; constructor(outputDir: string, prefixColumns?: { [key: string]: string; }, suffixColumns?: { [key: string]: string; }); insertRow(dataTable: DataTable, _ctx: ExecutionContext, row: Row): void; getRows(_dataTableName: string, _group?: string): any[]; getDataTables(): DataTable[]; get rowCounts(): { [key: string]: number; }; get tableKeys(): string[]; /** * Filesystem-safe key for a data table; mirrors the Java host's * {@code CsvDataTableStore.fileKey} so a shared table resolves to the same filename. */ static fileKey(dataTable: DataTable): string; } //# sourceMappingURL=data-table.d.ts.map