import type { Config } from '@oclif/core';
import AbstractAuthenticatedCommand from '../../abstract-authenticated-command';
/**
 * `forest layout pull` — read the live rendering of an environment/team and
 * write it to a versionable forest-layout.json. First milestone of the
 * declarative layout-as-code flow (pull → diff → apply).
 */
export default class LayoutPullCommand extends AbstractAuthenticatedCommand {
    private readonly env;
    static description: string;
    static flags: {
        env: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
        team: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
        projectId: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
        out: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
        'with-workflows': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
    };
    constructor(argv: string[], config: Config, plan?: any);
    protected runAuthenticated(): Promise<void>;
    /**
     * Write the downloaded sidecars, then prune the STALE ones: only files named
     * like a managed sidecar whose workflow no longer exists in the environment.
     * Sidecars of still-existing workflows are always kept — including those whose
     * download was skipped (dead S3 ref): that file may be the last copy of the
     * BPMN, and a backup tool must never destroy the backup. Every deletion is
     * logged. The prune runs even when nothing was downloaded, so a layout whose
     * workflows all lost their BPMN still converges to a faithful mirror.
     */
    private writeWorkflowSidecars;
    private warnSkipped;
}
//# sourceMappingURL=pull.d.ts.map