/**
 * This class is a parent class for tables, shapes, and points.
 * This is because these share functionality, for example:
 * - both shapes (the latest version) and points use parquet-based formats.
 * - both shapes (a previous version) and tables use zarr-based formats.
 * - logic for manipulating spatialdata element paths is shared across all elements.
 */
export default class SpatialDataTableSource extends AnnDataSource {
    /**
     *
     * @param {DataSourceParams & { queryClient: QueryClient }} params
     */
    constructor(params: DataSourceParams & {
        queryClient: QueryClient;
    });
    queryClient: QueryClient;
    parquetModulePromise: Promise<{
        readParquet: any;
        readSchema: any;
        readMetadata: any;
        readParquetRowGroup: any;
    }>;
    rootAttrs: {
        softwareVersion: any;
        formatVersion: any;
    } | null;
    /**
     * This is a map of element paths to their attributes.
     * @type {{ [k: string]: any }}
     */
    elementAttrs: {
        [k: string]: any;
    };
    /** @type {{ [k: string]: Uint8Array }} */
    parquetTableBytes: {
        [k: string]: Uint8Array;
    };
    /** @type {{ [k: string]: boolean }} */
    parquetTableIsDirectory: {
        [k: string]: boolean;
    };
    /** @type {{ [k: string]: Promise<string[]> }} */
    obsIndices: {
        [k: string]: Promise<string[]>;
    };
    /** @type {{ [k: string]: Promise<string[]> }} */
    varIndices: {
        [k: string]: Promise<string[]>;
    };
    /** @type {{ [k: string]: string[] }} */
    varAliases: {
        [k: string]: string[];
    };
    /**
     * This function loads the attrs for the root spatialdata object.
     * This is not the same as the attrs for a specific element.
     * @returns
     */
    loadSpatialDataObjectAttrs(): Promise<{
        softwareVersion: any;
        formatVersion: any;
    }>;
    /**
     * Get the attrs for a specific element
     * (e.g., "shapes/{element_name}" or "tables/{element_name}").
     * @param {string} elementPath
     * @returns
     */
    loadSpatialDataElementAttrs(elementPath: string): Promise<any>;
    /**
     *
     * @param {string} parquetPath The path to the parquet file or directory,
     * relative to the store root.
     * @returns {Promise<Uint8Array|undefined>} The parquet file bytes.
     */
    loadParquetBytes(parquetPath: string, offset?: undefined, length?: undefined, partIndex?: undefined): Promise<Uint8Array | undefined>;
    /**
     * Try to load only the schema bytes of a parquet file.
     * This is useful for getting the index column name without
     * loading the full table.
     * This will only work if the store supports getRange,
     * for example FetchStore.
     * Reference: https://github.com/manzt/zarrita.js/blob/c0dd684dc4da79a6f42ab2a591246947bde8d143/packages/%40zarrita-storage/src/fetch.ts#L87
     * In the future, this may not be needed if more metadata is
     * included in the Zarr Attributes.
     * Reference: https://github.com/scverse/spatialdata/issues/958
     * @param {string} parquetPath The path to the parquet file or directory,
     * relative to the store root.
     * @returns {Promise<Uint8Array|null>} The parquet file bytes,
     * or null if the store does not support getRange.
     */
    loadParquetSchemaBytes(parquetPath: string, partIndex?: undefined): Promise<Uint8Array | null>;
    /**
     * Get the index column from a parquet table.
     * @param {string} parquetPath A path to a parquet file (or directory).
     * @returns {Promise<import('apache-arrow').Vector|null>} A promise for a column, or null.
     */
    loadParquetTableIndex(parquetPath: string): Promise<import("apache-arrow").Vector | null>;
    /**
     * TODO: change implementation so that subsets of
     * columns can be loaded if the whole table is not needed.
     * Will first need to load the table schema.
     * @param {string} parquetPath A path to a parquet file (or directory).
     * @param {string[]|undefined} columns An optional list of column names to load.
     * @returns
     */
    loadParquetTable(parquetPath: string, columns?: string[] | undefined): Promise<import("apache-arrow").Table<any>>;
    /**
     * Class method for loading the var alias.
     * @param {string} varPath
     * @param {string} matrixPath
     * @returns {Promise<string[]>} An promise for a zarr array containing the aliased names.
     */
    loadVarAlias(varPath: string, matrixPath: string): Promise<string[]>;
    _supportsTiledPoints(parquetPath: any, featureIndexColumnName: any, mortonCodeColumn: any): Promise<boolean>;
    /**
     * Load point data using a tiled approach.
     * @param {string} parquetPath A path to a parquet file (or directory).
     * @param {{ left: number, top: number, right: number, bottom: number }} tileBbox
     * @param {{ x_min: number, y_min: number, x_max: number, y_max: number }} allPointsBbox
     * @param {string[]|undefined} columns An optional list of column names to load.
     * @returns
     */
    loadParquetTableInRect(parquetPath: string, tileBbox: {
        left: number;
        top: number;
        right: number;
        bottom: number;
    }, signal: any, featureIndexColumnName: any, mortonCodeColumn: any): Promise<{
        data: {
            x: Float32Array;
            y: Float32Array;
            featureIndices: Uint32Array;
        };
        shape: any[];
    }>;
}
import { AnnDataSource } from '@vitessce/zarr';
import type { QueryClient } from '@tanstack/react-query';
import type { DataSourceParams } from '@vitessce/types';
//# sourceMappingURL=SpatialDataTableSource.d.ts.map