mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
TypeScript 0.9.5 beta does not allow generic type references without the type argument. This code will still compile for 0.9.1 users. Flight and Ember have further compile problems in 0.9.5 that I don't feel qualified to address as I'm not versed in those libraries.
542 lines
17 KiB
TypeScript
542 lines
17 KiB
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 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[];
|
|
} |