import * as postcss from 'postcss'; import { NodeProps } from '../node'; import type * as sassInternal from '../sass-internal'; import { AnyExpression, Expression, ExpressionProps } from '.'; /** Different binary operations supported by Sass. */ export type BinaryOperator = '=' | 'or' | 'and' | '==' | '!=' | '>' | '>=' | '<' | '<=' | '+' | '-' | '*' | '/' | '%'; /** * The initializer properties for {@link BinaryOperationExpression}. * * @category Expression */ export interface BinaryOperationExpressionProps extends NodeProps { operator: BinaryOperator; left: AnyExpression | ExpressionProps; right: AnyExpression | ExpressionProps; raws?: BinaryOperationExpressionRaws; } /** * Raws indicating how to precisely serialize a {@link BinaryOperationExpression}. * * @category Expression */ export interface BinaryOperationExpressionRaws { /** The whitespace before the operator. */ beforeOperator?: string; /** The whitespace after the operator. */ afterOperator?: string; } /** * An expression representing an inline binary operation Sass. * * @category Expression */ export declare class BinaryOperationExpression extends Expression { readonly sassType: "binary-operation"; raws: BinaryOperationExpressionRaws; /** * Which operator this operation uses. * * Note that different operators have different precedence. It's the caller's * responsibility to ensure that operations are parenthesized appropriately to * guarantee that they're processed in AST order. */ get operator(): BinaryOperator; set operator(operator: BinaryOperator); private _operator; /** The expression on the left-hand side of this operation. */ get left(): AnyExpression; set left(left: AnyExpression | ExpressionProps); private _left; /** The expression on the right-hand side of this operation. */ get right(): AnyExpression; set right(right: AnyExpression | ExpressionProps); private _right; constructor(defaults: BinaryOperationExpressionProps); /** @hidden */ constructor(_: undefined, inner: sassInternal.BinaryOperationExpression); clone(overrides?: Partial): this; toJSON(): object; /** @hidden */ toJSON(_: string, inputs: Map): object; /** @hidden */ toString(): string; /** @hidden */ get nonStatementChildren(): ReadonlyArray; }