export interface HetznerDriverState {
    provider: 'hetzner';
    stackName: string;
    /** Absent after teardown (destroyCompute clears it). */
    serverId?: number;
    serverName?: string;
    firewallId?: number;
    publicIp?: string;
    deployStoragePath?: string;
    sshUser?: string;
    /** Fleet: network/LB ids + the services box private IP, for deploy + teardown. */
    networkId?: number;
    loadBalancerId?: number;
    servicesServerId?: number;
    servicesPrivateIp?: string;
    /**
     * Bun+rpx fleet (see `HetznerDriver`'s bun-fleet path): the dedicated rpx
     * load-balancer box (role `lb`) and the N app boxes (role `app`) it fronts.
     * Distinct from {@link loadBalancerId} (a Hetzner-native Load Balancer
     * resource, used by the PHP fleet path) — this is a real server running rpx.
     */
    lbServerId?: number;
    appServerIds?: number[];
}
export declare const STATE_DIR = "storage/cloud/state";
export declare function driverStatePath(stackName: string): string;
export declare function readDriverState(stackName: string): Promise<HetznerDriverState | null>;
export declare function writeDriverState(stackName: string, state: HetznerDriverState): Promise<void>;
