import { InjectionToken, OnDestroy } from '@angular/core';
import { Agent, AgentStatus, AgentStatusEnum, AgentType, DataSourceOptions, SemanticModel } from '@metad/ocap-core';
import { Observable, ReplaySubject } from 'rxjs';
import * as i0 from "@angular/core";
export declare const NGM_WASM_AGENT_WORKER: InjectionToken<string>;
export declare class WasmAgentService implements Agent, OnDestroy {
    private workerUrl;
    type: AgentType;
    protected readonly destroySubject$: ReplaySubject<void>;
    readonly destroy$: Observable<void>;
    get agent(): Agent;
    set agent(value: Agent);
    private agent$;
    constructor(workerUrl: string);
    selectStatus(): Observable<AgentStatus | AgentStatusEnum>;
    selectError(): Observable<any>;
    error(err: any): void;
    request(dataSource: DataSourceOptions, options: any): Promise<any>;
    registerModel(model: SemanticModel): Promise<void>;
    getWASMAgent(): Promise<Agent>;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WasmAgentService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<WasmAgentService>;
}
