import { Event } from '@vscode-alt/monaco-editor/esm/vs/base/common/event';
import { Counter } from '@vscode-alt/monaco-editor/esm/vs/base/common/numbers';
import { IExtensionDescription } from '@workbench-stack/core';
import * as cdeops from 'cdeops';
import { WebExtHostOrganizationShape, ClientThreadOrganizationShape } from '@adminide-stack/extension-api/lib/protocol/client.protocol';
import { IOrganizationData } from '@adminide-stack/extension-api/lib/protocol/common.protocol';
import { ILogService } from '@adminide-stack/core';
import { OrganizationContext } from '@adminide-stack/core';
export interface IExtHostOrganizationProvider {
    getOrganizationResource2(uri: cdeops.Uri, resolveParent?: boolean): Promise<cdeops.OrganizationResource | undefined>;
    resolveOrganizationResource(uri: cdeops.Uri): Promise<cdeops.OrganizationResource | undefined>;
    getOrganizationResources2(): Promise<cdeops.OrganizationResource[] | undefined>;
    resolveProxy(url: string): Promise<string | undefined>;
}
export declare class WebExtHostOrganization implements WebExtHostOrganizationShape, IExtHostOrganizationProvider {
    private readonly _onDidChangeOrganization;
    private readonly _proxy;
    private readonly _logService;
    private readonly _requestIdProvider;
    private readonly _barrier;
    private _confirmedOrganization;
    private _unconfirmedOrganization;
    readonly onDidChangeOrganization: Event<cdeops.OrganizationResourcesChangeEvent>;
    constructor(proxy: ClientThreadOrganizationShape, data: IOrganizationData, logService: ILogService, requestIdProvider: Counter);
    get organization(): OrganizationContext;
    get name(): string;
    private get _actualOrganization();
    getOrganizationResources(): cdeops.OrganizationResource[];
    getOrganizationResources2(): Promise<cdeops.OrganizationResource[] | undefined>;
    updateOrganizationResources(extension: IExtensionDescription, index: number, deleteCount: number, ...organizationResourcesToAdd: {
        uri: cdeops.Uri;
        name?: string;
    }[]): boolean;
    getOrganizationResource(uri: cdeops.Uri, resolveParent?: boolean): cdeops.OrganizationResource;
    getOrganizationResource2(uri: cdeops.Uri, resolveParent?: boolean): Promise<cdeops.OrganizationResource | undefined>;
    resolveOrganizationResource(uri: cdeops.Uri): Promise<cdeops.OrganizationResource | undefined>;
    getPath(): string;
    getRelativePath(pathOrUri: string | cdeops.Uri, includeOrganization?: boolean): string;
    private trySetOrganizationResources;
    $acceptOrganizationData(data: IOrganizationData): void;
    saveAll(includeUntitled?: boolean): Promise<boolean>;
    resolveProxy(url: string): Promise<string>;
}
