import { Stream, Readable } from 'node:stream'; type JSONLike = Record; type Input = string | JSONLike | Stream; interface Result { cmd: string; text: string; data?: JSONLike; stream?: Readable; extname?: string; details: string; } type Callback = (err: Error | null, res?: Result) => void; interface Options { command?: string; format?: string; inputFormat?: string; options?: string[]; destination?: string; env?: Record; timeout?: number; maxBuffer?: number; skipFailures?: boolean; } declare class Ogr2ogr implements PromiseLike { private inputStream?; private inputPath; private outputPath; private outputFormat; private outputExt; private customCommand?; private customOptions?; private customDestination?; private customEnv?; private timeout; private maxBuffer; private skipFailures; constructor(input: Input, opts?: Options); exec(cb: Callback): void; then(onfulfilled?: (value: Result) => TResult1 | PromiseLike, onrejected?: (reason: string) => TResult2 | PromiseLike): PromiseLike; private newInputPath; private newOutputPath; private createZipStream; private run; } declare function ogr2ogr(input: Input, opts?: Options): Ogr2ogr; declare namespace ogr2ogr { var version: () => Promise; } export { ogr2ogr };