import { DynamicPartType } from './dynamicPartType.js';
import type { SnapshotInstance } from './snapshot.js';
export declare let __page: FiberElement;
export declare let __pageId: number;
export declare function setupPage(page: FiberElement): void;
export declare function clearPage(): void;
/**
 * A snapshot definition that contains all the information needed to create and update elements
 * This is generated at compile time through static analysis of the JSX
 */
export interface Snapshot {
    create: null | ((ctx: SnapshotInstance) => FiberElement[]);
    update: null | ((ctx: SnapshotInstance, index: number, oldValue: any) => void)[];
    slot: [DynamicPartType, number][];
    isListHolder?: boolean;
    isSlotV2?: boolean;
    cssId?: number | undefined;
    entryName?: string | undefined;
    refAndSpreadIndexes?: number[] | null;
}
/**
 * Manager for snapshot definitions
 */
export declare const snapshotManager: {
    values: Map<string, Snapshot>;
};
/**
 * Creates a new snapshot definition and adds it to the manager
 */
export declare function createSnapshot(uniqID: string, create: Snapshot['create'] | null, update: Snapshot['update'] | null, slot: Snapshot['slot'], cssId: number | undefined, entryName: string | undefined, refAndSpreadIndexes: number[] | null, isLazySnapshotSupported?: boolean): string;
