///
import ProcessEnv = NodeJS.ProcessEnv;
import { AST_ParameterExpansion } from 'bash-parser';
import { TextReader, TextScanner } from './TextReader';
import TextWriter from './TextWriter';
export interface ExpandValueContext {
cwd: string;
predefined: ProcessEnv;
exported: ProcessEnv;
internal: ProcessEnv;
temporal: ProcessEnv;
writer: TextWriter;
}
export declare function createContext({ cwd, predefined, exported, internal, temporal, }: {
cwd: string;
predefined?: ProcessEnv;
exported?: ProcessEnv;
internal?: ProcessEnv;
temporal?: ProcessEnv;
}): ExpandValueContext;
interface ExpandValueState {
text: string;
valueHeadPos: number;
scanner: TextScanner;
reader: TextReader;
quote: QuoteType;
}
export declare function expandValue(text: string, valueHeadPos: number, paramExpansions: AST_ParameterExpansion[] | null, context: ExpandValueContext): string;
export declare function solveParamExpansion(param: string, context: ExpandValueContext): string;
export declare function createParamHandler(paramExpansions: AST_ParameterExpansion[] | null, { reader, scanner }: ExpandValueState, context: ExpandValueContext): () => boolean;
export declare function createQuoteHandler(state: ExpandValueState, { writer }: ExpandValueContext): () => boolean;
export declare function createBackslashHandler({ text, valueHeadPos, reader, scanner }: ExpandValueState, { writer }: ExpandValueContext): () => boolean;
export declare function paramExpansionReader(list: AST_ParameterExpansion[]): Generator;
export declare function readHexDigits(text: string, i: number, maxDigits: number): {
digits: number;
val: number;
};
export {};