import type * as readline from 'node:readline/promises';
import type { GrawkusConfig } from './types.js';
export interface FooterSnapshot {
    provider: string;
    model: string;
    permissionMode: string;
    mode: string;
    sessionId: string;
    sessionName?: string;
    cwd: string;
    sandbox?: string;
    template?: string;
    version: string;
}
export declare function shouldUseFixedFooter(config: GrawkusConfig, env?: NodeJS.ProcessEnv): boolean;
export declare function buildFooterSnapshot(config: GrawkusConfig, mode: string, session: {
    id: string;
    name?: string;
}, cwd: string): FooterSnapshot;
export declare function activateFooter(snapshot: FooterSnapshot): boolean;
export declare function deactivateFooter(): void;
export declare function isFooterActive(): boolean;
export declare function updateFooter(snapshot: Partial<FooterSnapshot>): void;
export declare function setFooterActivity(activity: string, turn?: number, startedAtMs?: number | null): void;
export declare function setFooterDraft(draft: string): void;
export interface FooterUsageDetails {
    sessionCost?: number;
    sessionTokens?: number;
    firstTokenMs?: number | null;
    durationMs?: number | null;
}
export declare function setFooterCost(cost: number, promptTokens: number, completionTokens: number, details?: FooterUsageDetails): void;
export declare function prepareFooterPrompt(): boolean;
export declare function askWithFooterPrompt(rl: readline.Interface, prefill?: string, options?: {
    echoSubmittedLine?: boolean;
}): Promise<string>;
export declare function writeFooterSubmittedLine(answer: string): void;
export declare function writeScrollableLine(line: string): void;
