declare type QuoteCharacter = '"' | "'"; export declare type StateTransitionFunction = (next: State) => void; export interface State { consume(character: string, transition: StateTransitionFunction): string; } declare type InPlaintextStateTransitionFunction = (next: InTagNameState) => void; export declare class InPlaintextState implements State { consume(character: string, transition: InPlaintextStateTransitionFunction): string; } export declare const enum TagMode { allowed = 0, disallowed = 1 } declare type InTagNameStateTransitionFunction = (next: InPlaintextState | InTagState | InTagState | InCommentState) => void; export declare class InTagNameState implements State { private nameBuffer; consume(character: string, transition: InTagNameStateTransitionFunction): string; } declare type InTagStateTransitionFunction = (next: InPlaintextState | InQuotedStringInTagState) => void; export declare class InTagState implements State { readonly mode: T; constructor(mode: T); consume(character: string, transition: InTagStateTransitionFunction): string; } declare type InQuotedStringInTagStateTransitionFunction = (next: InTagState) => void; export declare class InQuotedStringInTagState implements State { readonly mode: T; readonly quoteCharacter: QuoteCharacter; constructor(mode: T, quoteCharacter: QuoteCharacter); consume(character: string, transition: InQuotedStringInTagStateTransitionFunction): string; } declare type InCommentStateTransitionFunction = (next: InPlaintextState) => void; export declare class InCommentState implements State { private consecutiveHyphens; consume(character: string, transition: InCommentStateTransitionFunction): string; } export declare class StateMachine { private state; private transitionFunction; constructor(); consume(text: string): string; } export declare const stripTags: (text?: string) => string; export {};