import type { AdvisorDefinition } from '../types/advisory/config.js';
import type { AdvisoryRequest, AdvisoryResult } from '../types/advisory/result.js';
import type { CostInfo, TokenUsage } from '../types/common/index.js';
import { type Message } from '../types/message/index.js';
import type { LLMToolSchema } from '../types/tool/index.js';
import { type Logger } from '../utils/logger.js';
export interface AdvisoryCallContext {
    readonly messages: Message[];
    readonly workingStateSummary?: string;
    readonly toolCatalog?: LLMToolSchema[];
    readonly iteration: number;
}
export interface AdvisoryExecutionResult {
    readonly result: AdvisoryResult;
    readonly usage: TokenUsage;
    readonly cost: CostInfo;
    readonly durationMs: number;
}
export declare class AdvisoryExecutor {
    private readonly logger;
    constructor(logger?: Logger);
    consult(advisor: AdvisorDefinition, request: AdvisoryRequest, callCtx: AdvisoryCallContext): Promise<AdvisoryExecutionResult>;
    private buildSystemPrompt;
    private buildContext;
    private truncateMessages;
    /**
     * Parses the raw LLM response into an AdvisoryResult.
     *
     * Phase 1: text-only extraction. Structured parsing comes later.
     */
    private parseResult;
    /**
     * Computes cost from token usage.
     *
     * Returns zero-value cost since pricing is provider-specific.
     * Callers with pricing data can recompute via calculateCost().
     */
    private computeCost;
}
//# sourceMappingURL=executor.d.ts.map