/// 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; }