import { IRPCProtocol, ProxyIdentifier } from '@opensumi/ide-connection';
import { IExtHostChatAgents, IMainThreadChatAgents } from './chat-agents';
import { IExtHostCommon, IMainThreadCommon } from './common';
import { IExtHostLayout, IMainThreadLayout } from './layout';
import { IExtHostLifeCycle, IMainThreadLifeCycle } from './lifecycle';
import { IExtHostTheme, IMainThreadTheme } from './theme';
import { IExtHostToolbar, IMainThreadToolbar } from './toolbar';
import { IExtHostIDEWindow, IMainThreadIDEWindow } from './window';
export declare const MainThreadSumiAPIIdentifier: {
    MainThreadLifecycle: ProxyIdentifier<IMainThreadLifeCycle>;
    MainThreadTheme: ProxyIdentifier<IMainThreadTheme>;
    MainThreadLayout: ProxyIdentifier<IMainThreadLayout>;
    MainThreadCommon: ProxyIdentifier<IMainThreadCommon>;
    MainThreadToolbar: ProxyIdentifier<IMainThreadToolbar>;
    MainThreadIDEWindow: ProxyIdentifier<IMainThreadIDEWindow>;
    MainThreadChatAgents: ProxyIdentifier<IMainThreadChatAgents>;
};
export declare const ExtHostSumiAPIIdentifier: {
    ExtHostLifeCycle: ProxyIdentifier<IExtHostLifeCycle>;
    ExtHostLayout: ProxyIdentifier<IExtHostLayout>;
    ExtHostTheme: ProxyIdentifier<IExtHostTheme>;
    ExtHostCommon: ProxyIdentifier<IExtHostCommon>;
    ExtHostToolbar: ProxyIdentifier<IExtHostToolbar>;
    ExtHostIDEWindow: ProxyIdentifier<IExtHostIDEWindow>;
    ExtHostChatAgents: ProxyIdentifier<IExtHostChatAgents>;
};
/**
 * sumi API extender
 */
export declare abstract class SumiApiExtender<T = any> {
    protected rpcProtocol: IRPCProtocol;
    constructor(rpcProtocol: IRPCProtocol);
    /**
     * create rpc service when main thread could call
     */
    createRPCService?: () => [identifier: ProxyIdentifier<T>, service: T];
    /**
     * api factory
     * can use rpc service to call main thread
     */
    createApiFactory: (service?: T) => any;
}
export interface SumiApiExtenders extends Record<string, any> {
    [api: string]: new (rpcProtocol: IRPCProtocol) => SumiApiExtender;
}
//# sourceMappingURL=index.d.ts.map