/**
 * Options for executing a jrnl command
 */
interface JrnlExecutorOptions {
    timeout?: number;
    journal?: string;
    maxBuffer?: number;
}
/**
 * Result of a jrnl command execution
 */
interface JrnlExecutionResult {
    stdout: string;
    stderr: string;
    success: boolean;
}
/**
 * Execute a jrnl command and return the result
 *
 * @param args Command line arguments to pass to jrnl
 * @param options Execution options
 * @returns Promise with execution result
 */
export declare function executeJrnlCommand(args: string[], options?: JrnlExecutorOptions): Promise<JrnlExecutionResult>;
/**
 * Parse JSON output from jrnl command
 *
 * @param output Command output string
 * @returns Parsed JSON object
 */
export declare function parseJrnlJsonOutput<T>(output: string): T;
/**
 * Safely execute a jrnl command that outputs JSON and parse the result
 *
 * @param args Command line arguments
 * @param options Execution options
 * @returns Parsed JSON result
 */
export declare function executeJrnlJsonCommand<T>(args: string[], options?: JrnlExecutorOptions): Promise<T>;
export declare class JrnlExecutor {
    execute(args: string[]): Promise<string>;
    private cleanJrnlOutput;
}
export {};
