typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
553 lines (429 loc) • 17.2 kB
TypeScript
// Type definitions for LESS
// Project: http://lesscss.org/
// Definitions by: AndrewGaspar <https://github.com/AndrewGaspar>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare module "less" {
class LessError {
constructor(e: Error, env);
type: any;
message: string;
filename: string;
index;
line: number;
callLine: number;
callExtract;
stack;
column;
extract: any[];
}
interface Options {
contents?;
rootpath?: string;
files?;
paths?: string[];
mime?: string;
filename?: string;
optimization?: number;
dumpLineNumbers?: boolean;
strictImports?;
entryPath?: string;
relativeUrls?;
errback? (path: string, paths: string[], callback: Function, env: Options);
frames?;
compress?: boolean;
}
export module tree {
export module mixin { // TODO
export class Call {
}
export class Definition extends Ruleset {
}
}
export module functions {
export function rgb(r: number, g: number, b: number): Color;
export function rgba(r: number, g: number, b: number, a: number): Color;
export function hsl(h: number, s?: number, l?: number): Color;
export function hsla(h: number, s?: number, l?: number, a?: number): Color;
export function hsv(h: number, s: number, v: number): Color;
export function hsva(h: number, s: number, v: number, a: number): Color;
export function hue(color: Color): Dimension;
export function saturation(color: Color): Dimension;
export function lightness(color: Color): Dimension;
export function red(color: Color): Dimension;
export function green(color: Color): Dimension;
export function blue(color: Color): Dimension;
export function alpha(color: Color): Dimension;
export function luma(color: Color): Dimension;
export function saturate(color: Color, amount: IValuableNumber): Color;
export function desaturate(color: Color, amount: IValuableNumber): Color;
export function lighten(color: Color, amount: IValuableNumber): Color;
export function darken(color: Color, amount: IValuableNumber): Color;
export function fadein(color: Color, amount: IValuableNumber): Color;
export function fadeout(color: Color, amount: IValuableNumber): Color;
export function fade(color: Color, amount: IValuableNumber): Color;
export function spin(color: Color, amount: IValuableNumber): Color;
export function mix(color1: Color, color2: Color, weight: Dimension): Color;
export function greyscale(color: Color): Color;
export function contrast(color: Color, dark?: Color, light?: Color, threshold?: IValuableNumber): Color;
export function contrast(color: Color, dark?: Color, light?: Color, threshold?: number): Color;
export function e(str: string): Anonymous;
export function e(str: JavaScript): Anonymous;
export function escape(str: IValuableString): Anonymous;
export function unit(val: IValuableNumber, unit?: ICSSable): Dimension;
export function round(n: Dimension, f?: IValuableNumber): Dimension;
export function round(n: number, f?: IValuableNumber): number;
export function ceil(n: number): number;
export function ceil(n: Dimension): Dimension;
export function floor(n: number): number;
export function floor(n: Dimension): Dimension;
export function argb(color: Color): Anonymous;
export function percentage(n: IValuableNumber): Dimension;
export function color(n: Quoted): Color;
export function iscolor(n): Keyword;
export function isnumber(n): Keyword;
export function isstring(n): Keyword;
export function iskeyword(n): Keyword;
export function isurl(n): Keyword;
export function ispixel(n): Keyword;
export function ispercentage(n): Keyword;
export function isem(n): Keyword;
export function multiply(color1: Color, color2: Color): Color;
export function screen(color1: Color, color2: Color): Color;
export function overlay(color1: Color, color2: Color): Color;
export function softlight(color1: Color, color2: Color): Color;
export function hardlight(color1: Color, color2: Color): Color;
export function difference(color1: Color, color2: Color): Color;
export function exclusion(color1: Color, color2: Color): Color;
export function average(color1: Color, color2: Color): Color;
export function negation(color1: Color, color2: Color): Color;
export function tint(color: Color, amount: Dimension): Color;
export function shade(color: Color, amount: Dimension): Color;
}
export var colors: any; // Could be module - got lazy
interface HasDebugInfo {
debugInfo: DebugInfo;
}
interface DebugInfo {
lineNumber;
fileName: string;
}
interface HSL {
h: number;
s: number;
l: number;
a: number;
}
interface DebugInfoFunction {
(env: Options, ctx: HasDebugInfo): string;
asComment(ctx: HasDebugInfo): string;
asMediaQuery(ctx: HasDebugInfo): string;
}
interface RuleContainer {
[name: string]: Rule;
}
interface ICSSable {
toCSS(ctx?, env?: Options): string;
}
interface IEvalable {
eval(env: Options): IEvalable;
}
interface IInjectable extends ICSSable, IEvalable {}
interface IOperable {
operate(op: Operation, other: IOperable): IOperable;
}
interface IComparable {
compare(x: IComparable): number;
}
interface IColorable {
toColor(): Color;
}
interface IValuableNumber {
value: number;
}
interface IValuableString {
value: string;
}
export class Color implements IOperable, IInjectable, IComparable {
constructor(rgb: string, a: number);
constructor(rgb: number[], a: number);
rgb: number[];
alpha: number;
eval(): Color;
toCSS(): string;
operate(op: Operation, other: Color): Color;
operate(op: Operation, other: IColorable): Color;
toHSL(): HSL;
toARGB(): string;
compare(x: Color): number;
}
export class Directive implements IInjectable {
constructor(name, value);
name;
value: ICSSable;
ruleset: Ruleset;
toCSS(ctx?, env?: Options): string;
eval(env: Options): Directive;
variable(name);
find();
rulesets();
}
export class Operation implements IEvalable {
constructor(op, operands);
op: string;
operands: IEvalable;
eval(env: Options): IEvalable;
operate(op: string, a: number, b: number): number;
}
export class Dimension implements IColorable, IInjectable, IOperable, IComparable {
constructor(value: number, unit: string);
value: number;
unit: string;
eval(): Dimension;
toColor(): Color;
toCSS(): string;
operate(op: Operation, other: Dimension): Dimension;
compare(other: IComparable): number;
}
export class Keyword implements IInjectable, IComparable {
constructor(value: string);
value: string;
eval(): Keyword;
toCSS(): string;
compare(other: IComparable): number;
static True: Keyword;
static False: Keyword;
}
export class Variable implements IEvalable {
constructor(name: string, index, file: string);
name: string;
index;
file: string;
eval(env: Options): IEvalable;
}
export class AbstractRuleset implements IEvalable {
selectors: Selector[];
rules: any[];
strictImports;
eval(env: Options): Ruleset;
evalImports(env: Options): void;
makeImportant(): Ruleset;
matchArgs(args: any): boolean;
resetCache(): void;
variables(): RuleContainer;
variable(): Rule;
rulesets(): Ruleset[];
find(selector: Selector, self: Rule): Rule[];
joinSelectors(paths: string[], context: any[][], selectors: Selector[]): void;
joinSelector(paths: string[], context: any[][], selector: Selector): void;
mergeElementsOnToSelectors(elements: Element[], selectors: Selector[]): void;
}
export class Ruleset extends AbstractRuleset {
constructor(selectors: Selector[], rules: Rule[], strictImports);
toCSS(context?: any[][], env?: Options): string;
}
export class Element implements IInjectable {
constructor(combinator: Combinator, value, index);
combinator: Combinator;
value;
index;
eval(env: Options): Element;
toCSS(env?: Options): string;
}
export class Combinator implements ICSSable {
constructor(value: string);
value: string;
toCSS(env?: Options): string;
}
export class Selector implements IInjectable {
constructor(elements: Element[]);
match(other: Selector): boolean;
eval(env: Options): Selector;
toCSS(env?: Options): string;
}
export class Quoted implements IInjectable, IComparable {
constructor(str: string, content: string, escaped: boolean, i);
escaped: boolean;
value: string;
quote: string;
index;
toCSS(): string;
eval(env: Options): Quoted;
compare(x: IComparable): number;
}
export class Expression implements IInjectable {
constructor(value: IEvalable[]);
value: IEvalable[];
eval(env: Options): IEvalable;
toCSS(env?: Options): string;
}
export class Rule implements IInjectable {
constructor(name: string, value?: Value, important?: string, index?, inline?: boolean);
name: string;
value: Value;
important: string;
index;
inline: boolean;
toCSS(env?: Options): string;
eval(context): Rule;
makeImportant(): Rule;
}
export class Shorthand implements IInjectable {
constructor(a: ICSSable, b: ICSSable);
a: ICSSable;
b: ICSSable;
toCSS(env?: Options): string;
eval(): Shorthand;
}
export class Call implements IInjectable {
constructor(name: string, args: IEvalable[], index, filename: string);
name: string;
args: IEvalable[];
index;
filename: string;
eval(env: Options): IEvalable;
toCSS(env?: Options): string;
}
export class URL implements IInjectable {
constructor(val, rootpath: string);
value;
rootpath: string;
toCSS(): string;
eval(ctx): URL;
}
export class Alpha implements IInjectable {
constructor(val);
value;
toCSS(): string;
eval(env: Options): Alpha;
}
export class Import implements IInjectable {
constructor(path, imports, features: ICSSable, once: boolean, index, rootpath);
once: boolean;
index;
features: ICSSable;
rootpath;
path: string;
css: boolean;
toCSS(env?: Options): string;
eval(env: Options): IEvalable;
}
export class Comment implements IInjectable {
constructor(value: string, silent);
value: string;
silent: boolean;
toCSS(env?: Options): string;
eval(): Comment;
}
export class Anonymous implements IInjectable, IComparable {
constructor(value: string);
value: string;
toCSS(): string;
eval(): Anonymous;
compare(x): number;
}
export class Value implements IInjectable {
constructor(value: IEvalable[]);
value: IEvalable[];
is: string;
eval(env: Options): IEvalable;
toCSS(env?: Options): string;
}
export class JavaScript implements IEvalable {
constructor(expression: string, index, escaped: boolean);
escaped: boolean;
expression: string;
index;
eval(env: Options): IEvalable;
}
export class Assignment implements IInjectable {
constructor(key: string, val);
constructor(key: string, val: ICSSable);
constructor(key: string, val: IEvalable);
key: string;
value;
toCSS(): string;
eval(env: Options): Assignment;
}
export class Condition {
constructor(op: string, l, r, i, negate: boolean);
op: string;
lvalue;
rvalue;
index;
negate: boolean;
eval(env: Options): boolean;
}
export class Paren implements IInjectable {
constructor(node: IInjectable);
value: IInjectable;
toCSS(env?: Options): string;
eval(env: Options): Paren;
}
export class Media implements IInjectable {
constructor(value, features);
selectors: Selector[];
features: Value;
ruleset: Ruleset;
toCSS(ctx?, env?: Options): string;
eval(env: Options): IEvalable;
variable(name): Rule;
rulesets(): Ruleset[];
find(selector: Selector, self: Rule): Rule[];
emptySelectors(): Selector[];
evalTop(env: Options): IEvalable;
evalNested(env: Options): Ruleset;
permute(arr: any[]): any[];
bubbleSelectors(selectors: Selector[]): void;
}
export class Ratio implements IInjectable {
constructor(value: string);
value: string;
toCSS(env?: Options): string;
eval(): Ratio;
}
export class UnicodeDescriptor implements IInjectable {
constructor(value: string);
value: string;
toCSS(env?: Options): string;
eval(): UnicodeDescriptor;
}
export class Attribute implements IInjectable {
constructor(value: string);
value: string;
toCSS(env?: Options): string;
genCSS(env: Options, output): string;
eval(): Attribute;
}
export var debugInfo: DebugInfoFunction;
export function find(obj: any[], fun: Function): any;
export function jsify(obj: any): string;
export function operate(op: string, a: number, b: number): number;
export var True: Keyword;
export var False: Keyword;
}
class ParserNode extends tree.AbstractRuleset {
toCSS(): string;
toCSS(options: { compress: boolean; }, variables?): string;
}
export class Parser {
constructor(env?: Options);
imports: {
paths: string[];
queue: string[];
files;
contents;
mime: string;
error;
push(path: string, callback: (e, root, imported) => void);
}; // TODO
parse: (str: string, callback: (error: LessError, root: ParserNode) => void ) => void;
parsers: { // Major TODO
};
}
export function render(input: string, callback: (e, css: string) => void): void;
export function render(input: string, options: Options,
callback: (e, css: string) => void): void;
export function formatError(ctx, options: { color: boolean; }): string;
export function writeError(ctx, options: { color: boolean; }): void;
export var version: number[];
}