import type { dh } from '@deephaven/jsapi-types'; import type IrisGridModel from './IrisGridModel'; export declare function isPartitionedGridModelProvider(model: IrisGridModel): model is PartitionedGridModelProvider; export declare function isPartitionedGridModel(model: IrisGridModel): model is PartitionedGridModel; export interface PartitionConfig { /** The partition values to set on the model */ partitions: unknown[]; /** What data to display - the keys table, the merged table, or the selected partition */ mode: 'keys' | 'merged' | 'partition'; } /** * A grid model that provides key tables and partitions, cannot accept a `PartitionConfig` being set */ export interface PartitionedGridModelProvider extends IrisGridModel { /** * Retrieve the columns this model is partitioned on * @returns All columns to partition on */ get partitionColumns(): readonly dh.Column[]; /** Whether a partition is required to be set on this model */ get isPartitionRequired(): boolean; /** Whether the table is a partition-aware source table or a partition table */ get isPartitionAwareSourceTable(): boolean; /** Get a keys table for the partitions. Only includes the key columns. */ partitionKeysTable: () => Promise; /** Get the base table for the partitions. Includes key columns and possibly other columns, such as constituent columns */ partitionBaseTable: () => Promise; /** Get a merged table containing all partitions */ partitionMergedTable: () => Promise; /** Get a table containing the selected partition */ partitionTable: (partitions: unknown[]) => Promise; } /** * A grid model that can be partitioned on a column */ export interface PartitionedGridModel extends PartitionedGridModelProvider { /** Retrieve the currently set partition config */ get partitionConfig(): PartitionConfig | null; /** Set the partition config */ set partitionConfig(partitionConfig: PartitionConfig | null); } //# sourceMappingURL=PartitionedGridModel.d.ts.map