///
import { Editor, IEditSession } from 'brace';
export type ICompleterFn = (prefix: string, session?: IEditSession) => ng.IPromise | ICompleterItem[];
export interface ICompleterItem {
value: string;
meta: string;
caption?: string;
matchMask?: number[];
score?: number;
}
export interface IAceCompleter {
identifierRegexps: RegExp[];
getCompletions(editor: any, session: IEditSession, pos: any, prefix: string, callback: any): void;
linePredicate?(line: string): boolean;
acceptEmptyString?: boolean;
prefix?: string;
}
export default class CodeEditorCompleter {
private readonly completers;
constructor(ace: Editor);
addLiveCompleter(prefix: string, fn: ICompleterFn): void;
addOnDemandCompleter(identifierRegex: RegExp, fn: ICompleterFn, options?: any): void;
}