import { Table } from '../table'; import { Vector } from '../vector'; import { Predicate, Col } from './predicate'; import { RecordBatch } from '../recordbatch'; import { VectorType as V } from '../interfaces'; import { DataType, Int, Struct } from '../type'; /** @ignore */ export declare type BindFunc = (batch: RecordBatch) => void; /** @ignore */ export declare type NextFunc = (idx: number, batch: RecordBatch) => void; export declare class DataFrame extends Table { filter(predicate: Predicate): FilteredDataFrame; scan(next: NextFunc, bind?: BindFunc): void; scanReverse(next: NextFunc, bind?: BindFunc): void; countBy(name: Col | string): CountByResult>; } /** @ignore */ export declare class CountByResult extends Table<{ values: T; counts: TCount; }> { constructor(values: Vector, counts: V); toJSON(): Object; } /** @ignore */ export declare class FilteredDataFrame extends DataFrame { private _predicate; constructor(batches: RecordBatch[], predicate: Predicate); scan(next: NextFunc, bind?: BindFunc): void; scanReverse(next: NextFunc, bind?: BindFunc): void; count(): number; [Symbol.iterator](): IterableIterator['TValue']>; filter(predicate: Predicate): FilteredDataFrame; countBy(name: Col | string): CountByResult>; }