import { Zero, type BaseDefaultContext, type BaseDefaultSchema, type Connection, type ConnectionState, type CustomMutatorDefs, type DefaultContext, type DefaultSchema, type HumanReadable, type PullRow, type Query as QueryDef, type QueryOrQueryRequest, type ReadonlyJSONValue, type RunOptions, type TTL, type TypedView, type ZeroOptions } from '@rocicorp/zero'; import { Query } from './query.svelte.js'; import type { QueryResultDetails } from './types.js'; export declare class ViewStore { #private; getView(z: Z, query: QueryDef, enabled?: boolean): ViewWrapper; } export declare class ViewWrapper { #private; private z; private query; private onMaterialized; private onDematerialized; private enabled; constructor(z: Z, query: QueryDef, onMaterialized: (view: ViewWrapper) => void, onDematerialized: () => void, enabled: boolean); get current(): readonly [HumanReadable, QueryResultDetails]; get dataOnly(): HumanReadable; get detailsOnly(): QueryResultDetails; ensureSubscribed(): void; } export declare class Z { #private; constructor(z_options: ZeroOptions); get query(): Zero['query']; get mutate(): Zero['mutate']; get mutateBatch(): Zero['mutateBatch']; get clientID(): string; get userID(): string | undefined; get context(): unknown; /** * @deprecated Use `connectionState` instead for richer connection status information. */ get online(): boolean; /** * The current connection state. One of: * - `connecting`: Actively trying to connect * - `connected`: Successfully connected to the server * - `disconnected`: Offline, will retry automatically * - `needs-auth`: Authentication required, call `connection.connect()` with auth * - `error`: Fatal error, call `connection.connect()` to retry * - `closed`: Instance was closed, create a new Zero instance */ get connectionState(): ConnectionState; /** * The connection API for managing Zero's connection lifecycle. * Use this to manually control connections and handle auth failures. * * @example * ```ts * // Resume connection from error state * await z.connection.connect(); * * // Resume with new auth token * await z.connection.connect({ auth: newToken }); * ``` */ get connection(): Connection; get viewStore(): ViewStore; createQuery, TContext extends BaseDefaultContext = DefaultContext>(query: QueryOrQueryRequest, enabled?: boolean): Query; q, TContext extends BaseDefaultContext = DefaultContext>(query: QueryOrQueryRequest, enabled?: boolean): Query; preload, TContext extends BaseDefaultContext = DefaultContext>(query: QueryOrQueryRequest, options?: { /** * Time To Live. This is the amount of time to keep the rows associated with * this query after {@linkcode cleanup} has been called. */ ttl?: TTL | undefined; } | undefined): { cleanup: () => void; complete: Promise; }; run, TContext extends BaseDefaultContext = DefaultContext>(query: QueryOrQueryRequest, runOptions?: RunOptions | undefined): Promise>; materialize, TContext extends BaseDefaultContext = DefaultContext>(query: QueryOrQueryRequest): TypedView>; /** * @deprecated Use direct accessors or methods instead. ie z.query, z.mutate, z.build */ get current(): Zero; build(z_options: ZeroOptions): void; close(): void; }