import WarpCore from './WarpCore.ts';
import type { Aperture } from './types/Aperture.ts';
import type { ObserverOptions, WorldlineOptions, TranslationCostResult } from './capabilities/QueryCapability.ts';
import type { SyncWithOptions, SyncWithResult } from './capabilities/SyncCapability.ts';
import type { SubscribeOptions, SubscriptionHandle, WatchOptions } from './capabilities/SubscriptionCapability.ts';
import type Observer from './services/query/Observer.ts';
import type ProjectionHandle from './services/ProjectionHandle.ts';
import type { Writer } from './warp/Writer.ts';
import type { PatchBuilder } from './services/PatchBuilder.ts';
type ContentMeta = Awaited<ReturnType<WarpCore['getContentMeta']>>;
type PatchBuild = (patch: PatchBuilder) => void | Promise<void>;
type AppSurface = {
    graphName: string;
    writerId: string;
    writer(writerId?: string): Promise<Writer>;
    createPatch(): Promise<PatchBuilder>;
    patch(build: PatchBuild): Promise<string>;
    patchMany(...builds: PatchBuild[]): Promise<string[]>;
    syncWith(remote: string | AppSurface, options?: SyncWithOptions): Promise<SyncWithResult>;
    worldline(options?: WorldlineOptions): ProjectionHandle;
    observer(nameOrConfig: string | Aperture, configOrOptions?: Aperture | ObserverOptions, options?: ObserverOptions): Promise<Observer>;
    translationCost(configA: Aperture, configB: Aperture): Promise<TranslationCostResult>;
    subscribe(options: SubscribeOptions): SubscriptionHandle;
    watch(pattern: string | string[], options: WatchOptions): SubscriptionHandle;
    getContent(nodeId: string): Promise<Uint8Array | null>;
    getContentStream(nodeId: string): Promise<AsyncIterable<Uint8Array> | null>;
    getContentOid(nodeId: string): Promise<string | null>;
    getContentMeta(nodeId: string): Promise<ContentMeta>;
    getEdgeContent(from: string, to: string, label: string): Promise<Uint8Array | null>;
    getEdgeContentStream(from: string, to: string, label: string): Promise<AsyncIterable<Uint8Array> | null>;
    getEdgeContentOid(from: string, to: string, label: string): Promise<string | null>;
    getEdgeContentMeta(from: string, to: string, label: string): Promise<ContentMeta>;
};
/**
 * Legacy curated WARP application surface.
 *
 * `WarpApp` remains supported for compatibility with existing application
 * builders and agentic CLI usage. New application code should open a named
 * worldline with openWarpWorldline() and keep substrate access out of the
 * first-use path.
 *
 * @deprecated For new application workflows, use openWarpWorldline(). WarpApp
 * remains supported as a compatibility facade while graph-first APIs migrate
 * to worldline/optic-first docs.
 */
export default class WarpApp {
    private readonly _core;
    constructor(core: WarpCore);
    static open(options: Parameters<typeof WarpCore.open>[0]): Promise<WarpApp>;
    get graphName(): string;
    get writerId(): string;
    core(): WarpCore;
    _surface(): AppSurface;
    writer(writerId?: string): Promise<Writer>;
    createPatch(): Promise<PatchBuilder>;
    patch(build: PatchBuild): Promise<string>;
    patchMany(...builds: PatchBuild[]): Promise<string[]>;
    syncWith(remote: string | WarpApp | WarpCore, options?: SyncWithOptions): Promise<SyncWithResult>;
    worldline(options?: WorldlineOptions): ProjectionHandle;
    observer(config: Aperture, options?: ObserverOptions): Promise<Observer>;
    observer(name: string, config: Aperture, options?: ObserverOptions): Promise<Observer>;
    translationCost(configA: Aperture, configB: Aperture): Promise<TranslationCostResult>;
    subscribe(options: SubscribeOptions): SubscriptionHandle;
    watch(pattern: string | string[], options: WatchOptions): SubscriptionHandle;
    getContent(nodeId: string): Promise<Uint8Array | null>;
    getContentStream(nodeId: string): Promise<AsyncIterable<Uint8Array> | null>;
    getContentOid(nodeId: string): Promise<string | null>;
    getContentMeta(nodeId: string): Promise<ContentMeta>;
    getEdgeContent(from: string, to: string, label: string): Promise<Uint8Array | null>;
    getEdgeContentStream(from: string, to: string, label: string): Promise<AsyncIterable<Uint8Array> | null>;
    getEdgeContentOid(from: string, to: string, label: string): Promise<string | null>;
    getEdgeContentMeta(from: string, to: string, label: string): Promise<ContentMeta>;
    createStrand(options?: Parameters<WarpCore['createStrand']>[0]): Promise<Awaited<ReturnType<WarpCore['createStrand']>>>;
    getStrand(strandId: string): Promise<Awaited<ReturnType<WarpCore['getStrand']>>>;
    listStrands(): Promise<Awaited<ReturnType<WarpCore['listStrands']>>>;
    braidStrand(strandId: string, options?: Parameters<WarpCore['braidStrand']>[1]): Promise<Awaited<ReturnType<WarpCore['braidStrand']>>>;
    dropStrand(strandId: string): Promise<Awaited<ReturnType<WarpCore['dropStrand']>>>;
    createStrandPatch(strandId: string): Promise<Awaited<ReturnType<WarpCore['createStrandPatch']>>>;
    patchStrand(strandId: string, build: Parameters<WarpCore['patchStrand']>[1]): Promise<Awaited<ReturnType<WarpCore['patchStrand']>>>;
    queueStrandIntent(strandId: string, build: Parameters<WarpCore['queueStrandIntent']>[1]): Promise<Awaited<ReturnType<WarpCore['queueStrandIntent']>>>;
    listStrandIntents(strandId: string): Promise<Awaited<ReturnType<WarpCore['listStrandIntents']>>>;
    tickStrand(strandId: string): Promise<Awaited<ReturnType<WarpCore['tickStrand']>>>;
}
export {};
