import type * as c4 from '@likec4/core';
import { type ViewId } from '@likec4/core';
import type { Cancellation, URI } from 'langium';
import { Disposable } from 'langium';
import type { LikeC4Services } from '../module';
import { ADisposable } from '../utils';
type ModelParsedListener = (docs: URI[]) => void;
export declare class LikeC4ModelBuilder extends ADisposable {
    private services;
    private langiumDocuments;
    private listeners;
    constructor(services: LikeC4Services);
    /**
     * WARNING:
     * This method is internal and should to be called only when all documents are known to be parsed.
     * Otherwise, the model may be incomplete.
     */
    unsafeSyncBuildModel(): c4.ParsedLikeC4Model | null;
    buildModel(cancelToken?: Cancellation.CancellationToken): Promise<c4.ParsedLikeC4Model | null>;
    private previousViews;
    /**
     * WARNING:
     * This method is internal and should to be called only when all documents are known to be parsed.
     * Otherwise, the model may be incomplete.
     */
    unsafeSyncBuildComputedModel(model: c4.ParsedLikeC4Model): c4.ComputedLikeC4Model;
    buildComputedModel(cancelToken?: Cancellation.CancellationToken): Promise<c4.ComputedLikeC4Model | null>;
    computeView(viewId: ViewId, cancelToken?: Cancellation.CancellationToken): Promise<c4.ComputedView | null>;
    onModelParsed(callback: ModelParsedListener): Disposable;
    private documents;
    private notifyListeners;
}
export {};
