/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Static, type TSchema } from "@sinclair/typebox";
/**
 * Identifier OR Index of an identifier in the identifier list.
 */
export declare const IdentifierOrIndex: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNumber]>;
export type IdentifierOrIndex = Static<typeof IdentifierOrIndex>;
/**
 * Reference to a shape, by index.
 *
 * Shapes use a dictionary encoding where they are referenced by their index in a shape array.
 */
export declare const ShapeIndex: import("@sinclair/typebox").TNumber;
export type ShapeIndex = Static<typeof ShapeIndex>;
export declare const Count: import("@sinclair/typebox").TNumber;
declare const EncodedFieldBatchBase: import("@sinclair/typebox").TObject<{
    version: import("@sinclair/typebox").TNumber;
    identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
    /**
     * Top level array is list of field from batch.
     * Inner are TreeValues mixed with indexes into "shapes" and nested arrays where lengths are needed.
     */
    data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
}>;
/**
 * Format for encoding a tree chunk.
 * @param version - format version. Must be changed if there is any change to the generic schema, or the `shape` schema.
 * @param shape - schema for union of shape format, see {@link DiscriminatedUnionDispatcher}.
 */
export declare const EncodedFieldBatchGeneric: <TShapeSchema extends TSchema>(version: number, shape: TShapeSchema) => import("@sinclair/typebox").TObject<{
    data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
    version: import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TLiteral<number>]>;
    identifiers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
    shapes: import("@sinclair/typebox").TArray<TShapeSchema>;
}>;
export interface EncodedFieldBatchGeneric<TEncodedShape> extends Static<typeof EncodedFieldBatchBase> {
    shapes: TEncodedShape[];
}
export {};
//# sourceMappingURL=formatGeneric.d.ts.map