import type { StudioPowerStatus } from "./policy.js";
import type { StudioActivity } from "./keeper.js";
/** Every raw field the external idle detector needs to run eligibility itself. */
export type StudioCandidate = {
    host: string;
    subdomain: string | null;
    envId: string;
    owner: string | null;
    status: string;
    poolState: string | null;
    tenantId: string | null;
    /** JSON string of the env's services, as stored (read-model `environments.services`). */
    services: string | null;
};
export type StudioPowerStateResult = {
    host: string;
    envId: string | null;
    subdomain: string | null;
    owner: string | null;
    status: StudioPowerStatus;
};
export interface HousekeepingDeps {
    /** Read-only: resolve a host to its current power state. */
    powerState: (host: string) => Promise<StudioPowerStateResult>;
    /** Put an eligible studio to sleep (idempotent). */
    sleep: (host: string) => Promise<StudioPowerStateResult>;
    /** Wake a sleeping studio (idempotent; no-op if already awake/waking). */
    wake: (host: string) => Promise<StudioPowerStateResult>;
    /** Read-only: classify every claimed READY studio (idle detector's view). */
    studioActivity: () => Promise<StudioActivity[]>;
    /** Read-only: raw claimed-READY candidate rows for an external detector to run eligibility itself. */
    readyStudios: () => Promise<StudioCandidate[]>;
}
export declare function createResolvers(deps: HousekeepingDeps): Record<string, any>;
//# sourceMappingURL=resolvers.d.ts.map