/**
 * Residual Sync Executor
 *
 * Applies the small set of SDK CLI writes that have not yet moved onto the
 * shared site-command IR. Command-backed surfaces fail closed here so direct
 * writes cannot silently come back through this path.
 */
import type { ManagementClient } from '../../client/management/types';
import type { LocalContent } from '../content/reader';
import type { OutputContext } from '../output';
import type { ContentDiff } from './diff';
/**
 * Format API errors with detailed field validation info when available.
 */
export declare function formatApiError(error: unknown): string;
export interface SyncOptions {
    /** If true, don't actually make changes */
    dryRun: boolean;
}
export interface SyncResult {
    entries: {
        created: number;
        updated: number;
        deleted: number;
        failed: number;
        published: number;
        unpublished: number;
    };
    pages: {
        created: number;
        updated: number;
        failed: number;
        published: number;
        unpublished: number;
    };
    blocks: {
        created: number;
        updated: number;
        deleted: number;
        failed: number;
    };
    navigation: {
        created: number;
        updated: number;
        failed: number;
    };
    settings: {
        updated: number;
        failed: number;
    };
    forms: {
        created: number;
        updated: number;
        failed: number;
    };
    footer: {
        updated: number;
        failed: number;
    };
    errors: Array<{
        resource: string;
        identifier: string;
        error: string;
    }>;
    warnings: string[];
}
export type ResidualSettingsDiff = Readonly<Pick<ContentDiff, 'settings' | 'summary'>>;
export type ResidualSettingsLocalContent = Readonly<Pick<LocalContent, 'settings'>>;
export declare function createEmptySyncResult(): SyncResult;
/**
 * Execute the remaining settings-only sync plan.
 *
 * @param client - Management client
 * @param diff - Calculated content diff
 * @param local - Local content
 * @param options - Sync options (dryRun)
 * @param output - Output context for progress reporting
 * @returns Sync result with counts and errors
 */
export declare function executeResidualSettingsSyncPlan(client: ManagementClient, diff: ResidualSettingsDiff, local: ResidualSettingsLocalContent, options: SyncOptions, output: OutputContext): Promise<SyncResult>;
/**
 * Format sync result for display.
 */
export declare function formatSyncResult(result: SyncResult, dryRun: boolean): string;
