// Type definitions for LESS // Project: http://lesscss.org/ // Definitions by: Tom Hasner // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module Less { // Promise definitions from ../es6-promise/es6-promise.d.ts interface Thenable { then(onFulfilled?: (value: R) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable; } class Promise implements Thenable { constructor(callback: (resolve : (value?: R | Thenable) => void, reject: (error?: any) => void) => void); then(onFulfilled?: (value: R) => U | Thenable, onRejected?: (error: any) => U | Thenable): Promise; catch(onRejected?: (error: any) => U | Thenable): Promise; finally(finallyCallback: () => any): Promise; } interface RootFileInfo { filename: string; relativeUrls: boolean; rootpath: string; currentDirectory: string; entryPath: string; rootFilename: string; } class PluginManager { constructor(less: LessStatic); addPreProcessor(preProcessor: PreProcessor, priority?: number): void; } interface Plugin { install: (less: LessStatic, pluginManager: PluginManager) => void; } interface PreProcessor { process: (src: string, extra: PreProcessorExtraInfo) => string; } interface PreProcessorExtraInfo { context: { pluginManager: PluginManager; }; fileInfo: RootFileInfo; imports: { [key: string]: any; }; } interface SourceMapOption { sourceMapURL: string; sourceMapBasepath: string; sourceMapRootpath: string; outputSourceFiles: boolean; sourceMapFileInline: boolean; } interface Options { sourceMap?: SourceMapOption; filename?: string; plugins: Plugin[]; rootFileInfo?: RootFileInfo; } interface RenderError { column: number; extract: string[]; filename: string; index: number; line: number; message: string; type: string; } interface RenderOutput { css: string; map: string; imports: string[]; } } interface LessStatic { render(input: string, callback: (error: Less.RenderError, output: Less.RenderOutput) => void): void; render(input: string, options: Less.Options, callback: (error: Less.RenderError, output: Less.RenderOutput) => void): void; render(input: string): Less.Promise; render(input: string, options: Less.Options): Less.Promise; version: number[]; } declare module "less" { export = less; } declare var less: LessStatic;