/// import { Minimatch } from 'minimatch'; export interface KnownProps { end_of_line?: 'lf' | 'crlf' | 'unset'; indent_style?: 'tab' | 'space' | 'unset'; indent_size?: number | 'tab' | 'unset'; insert_final_newline?: true | false | 'unset'; tab_width?: number | 'unset'; trim_trailing_whitespace?: true | false | 'unset'; charset?: string | 'unset'; } interface UnknownMap { [index: string]: unknown; } export type Props = KnownProps & UnknownMap; export interface ECFile { name: string; contents?: Buffer; } type SectionGlob = Minimatch | null; type GlobbedProps = [SectionName, Props, SectionGlob][]; export interface ProcessedFileConfig { root: boolean; name: string; config: GlobbedProps; notfound?: true; } export interface Visited { fileName: string; glob: string; } export interface Cache { get(path: string): ProcessedFileConfig | undefined; set(path: string, config: ProcessedFileConfig): this; } export interface ParseOptions { config?: string; version?: string; root?: string; files?: Visited[]; cache?: Cache; } export type SectionName = string | null; export interface SectionBody { [key: string]: string; } export type ParseStringResult = [SectionName, SectionBody][]; /** * Parse a buffer using the faster one-ini WASM approach into something * relatively easy to deal with in JS. * * @param data UTF8-encoded bytes. * @returns Parsed contents. Will be truncated if there was a parse error. */ export declare function parseBuffer(data: Buffer): ParseStringResult; /** * Parses a string. If possible, you should always use ParseBuffer instead, * since this function does a UTF16-to-UTF8 conversion first. * * @param data String to parse. * @returns Parsed contents. Will be truncated if there was a parse error. * @deprecated Use {@link ParseBuffer} instead. */ export declare function parseString(data: string): ParseStringResult; /** * Low-level interface, which exists only for backward-compatibility. * Deprecated. * * @param filepath The name of the target file, relative to process.cwd(). * @param files A promise for a list of objects describing the files. * @param options All options * @returns The properties found for filepath * @deprecated */ export declare function parseFromFiles(filepath: string, files: Promise, options?: ParseOptions): Promise; /** * Low-level interface, which exists only for backward-compatibility. * Deprecated. * * @param filepath The name of the target file, relative to process.cwd(). * @param files A list of objects describing the files. * @param options All options * @returns The properties found for filepath * @deprecated */ export declare function parseFromFilesSync(filepath: string, files: ECFile[], options?: ParseOptions): Props; /** * Find all of the properties from matching sections in config files in the * same directory or toward the root of the filesystem. * * @param filepath The target file name, relative to process.cwd(). * @param options All options * @returns Combined properties for the target file */ export declare function parse(filepath: string, options?: ParseOptions): Promise; /** * Find all of the properties from matching sections in config files in the * same directory or toward the root of the filesystem. Synchronous. * * @param filepath The target file name, relative to process.cwd(). * @param options All options * @returns Combined properties for the target file */ export declare function parseSync(filepath: string, options?: ParseOptions): Props; export {};