export type ShellFrame = 'single' | 'double' | 'dollar-single' | 'dollar-double' | 'paren-sub' | 'arith' | 'backtick' | 'param-brace' | 'heredoc' | 'line-comment'; export type ShellUnsafeRegion = ShellFrame | 'escape'; interface ArithSquareFrame { readonly kind: 'arith-square'; readonly bracketDepth: number; } interface ArithFrame { readonly kind: 'arith'; readonly parenthesisDepth: number; } type ShellScanFrame = Exclude | ArithFrame | ArithSquareFrame; export type ShellSiteContext = { readonly kind: 'unquoted' | 'single' | 'double'; } | { readonly kind: 'unsafe'; readonly region: ShellUnsafeRegion; }; export interface ShellScanState { readonly frames: readonly ShellScanFrame[]; readonly pendingEscape?: boolean; readonly previousCharacter?: string; readonly previousCharacterEscaped?: boolean; } export declare const initialShellScanState: ShellScanState; export declare function scanShellLiteral(text: string, state: ShellScanState): ShellScanState; export declare function classifyShellSite(state: ShellScanState): ShellSiteContext; export {}; //# sourceMappingURL=shell-quoting.d.ts.map