import { type SyncEvent } from '@dossierhq/core';
import type { Server } from '@dossierhq/server';
import type { ScenarioContext, SyncTestContext } from './SyncTestSuite.js';
export declare function ensureServerIsEmpty(server: Server): Promise<void>;
export declare function createPrincipalSyncAndInitializeScenarioContext(context: SyncTestContext): Promise<ScenarioContext>;
export declare function applyEventsOnTargetAndResolveNextContext<TContext extends Pick<ScenarioContext, 'sourceServer' | 'targetServer' | 'after' | 'events'>>(context: TContext): Promise<{
    nextContext: TContext & {
        after: string | null;
        events: SyncEvent[];
    };
    events: SyncEvent[];
}>;
export declare function ensureServerHasTheSameSyncEventsAsFirstSeen(context: ScenarioContext, server: Server): Promise<void>;
