import { type Spinner } from './progress.js';
import type { Agent, AgentVersion, Credentials, CredentialsPolicy, Context, Integration, IntegrationVersion, JobStep, Pagination, Session, Skill, SkillVersion, Task, ValidationStep, Workspace, WorkspaceAgent, Trigger } from './api-types.js';
/**
 * Format an agent list as a human-readable table.
 * Shared by agent list and agent search commands.
 */
export declare function formatAgentTable(agents: Agent[], pagination: Pagination, showArchived?: boolean): void;
/**
 * Format an integration list as a human-readable table.
 * Used by integration list command.
 */
export declare function formatIntegrationTable(integrations: Integration[], pagination: Pagination): void;
/**
 * Format a skill list as a human-readable table.
 * Used by skill list command.
 */
export declare function formatSkillTable(skills: Skill[], pagination: Pagination): void;
/**
 * Format a skill version list as a human-readable table.
 * Used by skill version list command.
 */
export declare function formatSkillVersionTable(versions: SkillVersion[], pagination: Pagination, skillName: string): void;
/**
 * Format an integration version list as a human-readable table.
 * Used by integration version list command.
 */
export declare function formatIntegrationVersionTable(versions: IntegrationVersion[], pagination: Pagination, integrationName: string): void;
/**
 * Format an agent version list as a human-readable table.
 * Used by agent versions command.
 */
export declare function formatVersionTable(versions: AgentVersion[], pagination: Pagination): void;
/**
 * Format a context list as a human-readable table.
 * Used by workspace context list command.
 */
export declare function formatContextTable(contexts: Context[], pagination: Pagination): void;
/**
 * Format a workspace agent list as a human-readable table.
 * Used by workspace agent list command.
 */
export declare function formatWorkspaceAgentTable(agents: WorkspaceAgent[]): void;
/**
 * Format a workspace list as a human-readable table.
 * Used by workspace list command.
 */
export declare function formatWorkspaceTable(workspaces: Workspace[], pagination: Pagination): void;
/**
 * Format a session list as a human-readable table.
 * Used by session list command.
 */
export declare function formatSessionTable(sessions: Session[], pagination: Pagination): void;
/**
 * Format a task list as a human-readable table.
 * Used by session tasks command.
 */
export declare function formatTaskTable(tasks: Task[], pagination: Pagination): void;
/**
 * Format a trigger list as a human-readable table.
 * Used by trigger list command.
 */
export declare function formatTriggerTable(triggers: Trigger[], pagination: Pagination): void;
export declare function formatCredentialsTable(credentials: Credentials[], pagination: Pagination): void;
export declare function formatPoliciesTable(policies: CredentialsPolicy[], pagination: Pagination): void;
/**
 * Format job steps as a human-readable table.
 * Used by job get command.
 */
export declare function formatJobStepTable(steps: JobStep[]): void;
/**
 * Format validation step logs as human-readable output.
 * Prints each step's name, colored status, and full log content.
 * Used by the `guild agent logs` command.
 */
export declare function formatValidationLogs(steps: ValidationStep[]): void;
/**
 * Output writer interface for consistent CLI output
 *
 * Implementations:
 * - InteractiveOutputWriter: Colors, tables, spinners for interactive use
 * - JSONOutputWriter: Pure JSON for scripting and automation
 */
export interface OutputWriter {
    /**
     * Output structured data (goes to stdout)
     */
    data(value: unknown): void;
    /**
     * Output success message with optional details
     */
    success(message: string, details?: Record<string, unknown>): void;
    /**
     * Output error message with optional details
     */
    error(message: string, details?: string): void;
    /**
     * Output progress message (goes to stderr, suppressible with --quiet)
     */
    progress(message: string): void;
    /**
     * Create progress spinner (goes to stderr, suppressible with --quiet)
     */
    spinner(message: string): Spinner;
}
/**
 * Human-friendly output writer
 *
 * Uses colors, symbols, and formatting for readability.
 * Progress goes to stderr.
 */
export declare class InteractiveOutputWriter implements OutputWriter {
    data(value: unknown): void;
    success(message: string, details?: Record<string, unknown>): void;
    error(message: string, details?: string): void;
    progress(message: string): void;
    spinner(message: string): Spinner;
}
/**
 * JSON output writer
 *
 * Outputs pure JSON to stdout for machine consumption.
 * Progress goes to stderr as JSON (unless --quiet).
 */
export declare class JSONOutputWriter implements OutputWriter {
    data(value: unknown): void;
    success(message: string, details?: Record<string, unknown>): void;
    error(message: string, details?: string): void;
    progress(message: string): void;
    spinner(_message: string): Spinner;
}
/**
 * Create output writer based on current mode
 */
export declare function createOutputWriter(): OutputWriter;
//# sourceMappingURL=output.d.ts.map