astro-ghostcms/.pnpm-store/v3/files/72/7f6bd16c2eb58c2a46b25b9ad66...

63 lines
2.2 KiB
Plaintext

import type { AbbreviationAttribute, AbbreviationNode } from '@emmetio/abbreviation';
import type { Config, Options } from './config.js';
export interface OutputStream {
options: Options;
value: string;
level: number;
offset: number;
line: number;
column: number;
}
export declare const expressionStart = "{";
export declare const expressionEnd = "}";
export default function createOutputStream(options: Options, level?: number): OutputStream;
/**
* Pushes plain string into output stream without newline processing
*/
export declare function push(stream: OutputStream, text: string): void;
/**
* Pushes given string with possible newline formatting into output
*/
export declare function pushString(stream: OutputStream, value: string): void;
/**
* Pushes new line into given output stream
*/
export declare function pushNewline(stream: OutputStream, indent?: boolean | number): void;
/**
* Adds indentation of `size` to current output stream
*/
export declare function pushIndent(stream: OutputStream, size?: number): void;
/**
* Pushes field/tabstop into output stream
*/
export declare function pushField(stream: OutputStream, index: number, placeholder: string): void;
/**
* Returns given tag name formatted according to given config
*/
export declare function tagName(name: string, config: Config): string;
/**
* Returns given attribute name formatted according to given config
*/
export declare function attrName(name: string, config: Config): string;
/**
* Returns character for quoting value of given attribute
*/
export declare function attrQuote(attr: AbbreviationAttribute, config: Config, isOpen?: boolean): string;
/**
* Check if given attribute is boolean
*/
export declare function isBooleanAttribute(attr: AbbreviationAttribute, config: Config): boolean;
/**
* Returns a token for self-closing tag, depending on current options
*/
export declare function selfClose(config: Config): string;
/**
* Check if given tag name belongs to inline-level element
* @param node Parsed node or tag name
*/
export declare function isInline(node: string | AbbreviationNode, config: Config): boolean;
/**
* Splits given text by lines
*/
export declare function splitByLines(text: string): string[];