/** @packageDocumentation
 * @module WebGL
 */
import { LinePixels } from "@itwin/core-common";
/** @internal */
export interface LineCodeAssignmentArgs {
    /** Zero-based index of the new pattern within the texture. */
    readonly code: number;
    /** The 32-bit bitfield representing the pattern written into the texture. */
    readonly pattern: number;
}
/** Initialize the maximum line code slots based on System's maxTextureSize.
 * Must be called before initializeDefaultPatterns().
 * @internal
 */
export declare function initializeLineCodeCapacity(maxTexSize: number): void;
/** Initialize default line patterns. Called when System is ready.
 * @internal
 */
export declare function initializeDefaultPatterns(): void;
/** Reset initialization state - used when System reinitializes.
 * @internal
 */
export declare function resetLineCodeState(): void;
/** Map a LinePixels value to a texture row index that identifies the corresponding pattern. */
export declare function lineCodeFromLinePixels(pixels: LinePixels): number;
/** @internal */
export declare function onLineCodeAssigned(listener: (args: LineCodeAssignmentArgs) => void): () => void;
/** @internal */
export declare function getLineCodePatterns(): readonly number[];
/** @internal */
export declare const lineCodeTextureSize = 32;
/** Get the current capacity of the line code texture.
 * @internal
 */
export declare function lineCodeTextureCapacity(): number;
//# sourceMappingURL=LineCode.d.ts.map