import * as postcss from 'postcss'; import { Argument, ArgumentProps } from './argument'; import { Container } from './container'; import { Node, NodeProps } from './node'; import * as sassInternal from './sass-internal'; /** * The type of new nodes that can be passed into a argument list, either a * single argument or multiple arguments. * * @category Expression */ export type NewArguments = Argument | ArgumentProps | ReadonlyArray | undefined; /** * The initializer properties for {@link ArgumentList} passed as an options * object. * * @category Expression */ export interface ArgumentListObjectProps extends NodeProps { nodes?: ReadonlyArray; raws?: ArgumentListRaws; } /** * The initializer properties for {@link ArgumentList}. * * @category Expression */ export type ArgumentListProps = ArgumentListObjectProps | ReadonlyArray; /** * Raws indicating how to precisely serialize a {@link ArgumentList} node. * * @category Expression */ export interface ArgumentListRaws { /** * Whether the final argument has a trailing comma. * * Ignored if {@link ArgumentList.nodes} is empty. */ comma?: boolean; /** * The whitespace between the final argument (or its trailing comma if it has * one) and the closing parenthesis. */ after?: string; } /** * A list of arguments, as in an `@include` rule or a function call. * * @category Expression */ export declare class ArgumentList extends Node implements Container { #private; readonly sassType: "argument-list"; raws: ArgumentListRaws; get nodes(): ReadonlyArray; /** @hidden */ set nodes(nodes: Array); private _nodes?; constructor(defaults?: ArgumentListProps); /** @hidden */ constructor(_: undefined, inner: sassInternal.ArgumentList); clone(overrides?: Partial): this; toJSON(): object; /** @hidden */ toJSON(_: string, inputs: Map): object; append(...nodes: NewArguments[]): this; each(callback: (node: Argument, index: number) => false | void): false | undefined; every(condition: (node: Argument, index: number, nodes: ReadonlyArray) => boolean): boolean; index(child: Argument | number): number; insertAfter(oldNode: Argument | number, newNode: NewArguments): this; insertBefore(oldNode: Argument | number, newNode: NewArguments): this; prepend(...nodes: NewArguments[]): this; push(child: Argument): this; removeAll(): this; removeChild(child: Argument | number): this; some(condition: (node: Argument, index: number, nodes: ReadonlyArray) => boolean): boolean; get first(): Argument | undefined; get last(): Argument | undefined; /** @hidden */ toString(): string; /** * Normalizes a single argument declaration or list of arguments. */ private _normalize; /** Like {@link _normalize}, but doesn't set the argument's parents. */ private _normalizeBeforeParent; /** Like {@link _normalize}, but also flattens a list of nodes. */ private _normalizeList; /** @hidden */ get nonStatementChildren(): ReadonlyArray; }