import { EventType, RETICLE_URL_PARAM, type ReticleEvent } from '@reticlehq/core'; import { type CapabilitiesInput } from './registry/capabilities.js'; import type { ReticleConnectOptions } from './connect-options.js'; export type { ReticleConnectOptions }; export declare function shouldBlockProduction(nodeEnv: string | undefined, allowInProduction: boolean): boolean; export declare function connectionPolicy(pageHostname: string, bridgeUrl: string, allowNonLocalhost: boolean, token: string | undefined, pageProtocol?: string): { allowed: boolean; reason?: string; }; export declare function resolveSessionLabel(option: string | undefined, gen: () => string): string; export { RETICLE_URL_PARAM }; export declare function reticleParamsFromSearch(search: string): { session?: string; projectId?: string; }; export declare function resolveConnectIdentity(options: { session?: string; projectId?: string; }, search: string): { session: string | undefined; projectId: string | undefined; }; export declare function buildEvent(args: { seq: number; t: number; type: EventType; sessionId: string; data: Record; ref?: string | undefined; documentId?: string | undefined; editEpoch?: number | undefined; }): ReticleEvent; export declare class Reticle { #private; connect(options?: ReticleConnectOptions): void; get connected(): boolean; signal(name: string, data?: Record): void; state(name: string, value: unknown): void; renderCommit(commits: number): void; describe(input: CapabilitiesInput): void; endSession(): void; observeHotUpdates(hot: unknown): void; disconnect(): void; }