import { CodeCompletionService } from './codeCompletion';
import type { CodeCompletionConfig, ICodeCompletionAPI, ICodeCompletionEventHandlers } from './types';
import * as monaco from 'monaco-editor';
export declare function createCodeCompletionService(api: ICodeCompletionAPI, userConfig?: CodeCompletionConfig): CodeCompletionService;
interface RegisterGhostProps {
    api: ICodeCompletionAPI;
    eventHandlers?: ICodeCompletionEventHandlers;
    config: CodeCompletionConfig & {
        language: string;
    };
}
export declare class MonacoGhostInstance {
    private editor;
    private disposables;
    private completionProvider;
    constructor(editor: monaco.editor.IStandaloneCodeEditor);
    register({ api, config, eventHandlers }: RegisterGhostProps): void;
    dispose(): void;
}
export declare function createMonacoGhostInstance(editor: monaco.editor.IStandaloneCodeEditor): {
    register: (props: RegisterGhostProps) => void;
    unregister: () => void;
};
export {};
//# sourceMappingURL=factory.d.ts.map