import type { PTableShape, PTableVector, TableRange, UniqueValuesResponse, DataQuery, } from "@milaboratories/pl-model-common"; import type { PFrameInternal } from "@milaboratories/pl-model-middle-layer"; export interface NodeFrameSymbol // oxlint-disable-next-line extends Symbol {} export interface NodeTableSymbol // oxlint-disable-next-line extends Symbol {} export interface CancellationTokenSymbol // oxlint-disable-next-line extends Symbol {} interface Cancellation { cancellationTokenCreate: () => CancellationTokenSymbol; cancellationTokenCancel: (token: CancellationTokenSymbol) => void; } interface HeapProfiler { pprofDump: () => Promise; } interface NodeFrame { pFrameCreate: (spillPath: string, logger: PFrameInternal.Logger | undefined) => NodeFrameSymbol; pFrameSetDataSource: ( pFrame: NodeFrameSymbol, dataSource: PFrameInternal.PFrameDataSourceV2, ) => void; pFrameAddColumns: ( pFrame: NodeFrameSymbol, columns: PFrameInternal.AddColumnEntryV2[], token: CancellationTokenSymbol | undefined, ) => Promise; pFrameDispose: (pFrame: NodeFrameSymbol) => void; pFrameCreateTable: ( pFrame: NodeFrameSymbol, id: PFrameInternal.PTableId, dataQuery: DataQuery, ) => NodeTableSymbol; pFrameGetUniqueValues: ( pFrame: NodeFrameSymbol, id: PFrameInternal.PTableId, request: PFrameInternal.UniqueValuesRequestV2, token: CancellationTokenSymbol | undefined, ) => Promise; } interface NodeTable { pTableGetFootprint: ( boxed: NodeTableSymbol, withPredecessors: boolean, token: CancellationTokenSymbol | undefined, ) => Promise; pTableGetShape: ( boxed: NodeTableSymbol, token: CancellationTokenSymbol | undefined, ) => Promise; pTableGetData: ( boxed: NodeTableSymbol, columnIndices: number[], range: TableRange | undefined, token: CancellationTokenSymbol | undefined, ) => Promise; pTableExport: ( boxed: NodeTableSymbol, path: string, headers: [number, string][], token: CancellationTokenSymbol | undefined, ) => Promise; pTableDispose: (boxed: NodeTableSymbol) => void; } export interface AddonSymbol // oxlint-disable-next-line extends Symbol, Cancellation, HeapProfiler, NodeFrame, NodeTable {}