import { type SiteId } from '../../../../core/src/index';
import type { ManagementClient } from '../../client/management/types';
import type { LocalContent } from '../content/reader';
import type { EnvTarget } from '../helpers';
import type { OutputContext } from '../output';
import { type ContentDiff, type SyncResult } from '../sync';
import { type CommandSurfaceDispatchDependencies } from './commandSurfaceDispatch';
import { planContentPushExecution } from './pushExecutionPlan';
import type { CommandSurface, CommandSurfaceCompileResult, CommandSurfaceCompileSuccess, CommandSurfaceExecutionReport, ContentPushScope, ContentPushExecutionPlan, ContentPushExecutionReport, ContentPushExecutionStep } from './pushExecutionTypes';
import type { compilePagePushCommands } from './pageCommands';
export { planContentPushExecution };
export type { CommandSurface, CommandSurfaceCompileResult, CommandSurfaceCompileSuccess, CommandSurfaceExecutionReport, ContentPushScope, ContentPushExecutionPlan, ContentPushExecutionReport, ContentPushExecutionStep, };
export type ContentPushExecutionInput = Readonly<{
    pushScope: ContentPushScope;
    siteId: SiteId;
    target: EnvTarget;
    diff: ContentDiff;
    local: LocalContent;
    client: ManagementClient;
    blockFieldExtensions: Parameters<typeof compilePagePushCommands>[0]['blockFieldExtensions'];
    output: OutputContext;
    onEntryCommandCount?: (commandCount: number) => void;
    onFormCommandCount?: (commandCount: number) => void;
    onNavigationCommandCount?: (commandCount: number) => void;
    onPageCommandCount?: (commandCount: number) => void;
}>;
export declare function executeContentPushPlan(input: ContentPushExecutionInput): Promise<SyncResult>;
export declare function executeContentPushPlanAsCommandReport(input: ContentPushExecutionInput, dependencies?: CommandSurfaceDispatchDependencies): Promise<ContentPushExecutionReport>;
export declare function contentPushExecutionReportToSyncResult(report: ContentPushExecutionReport): SyncResult;
