import type { Kysely } from "kysely";
import type { DB } from "../../processors/vetra-cloud-environment/schema.js";
import type { EnvRow } from "./policy.js";
/** Full studio row the housekeeping resolvers/service need to act on a host. */
export type StudioRow = EnvRow & {
    envId: string;
};
/**
 * Extract the studio subdomain from a request host. Studios are served at their
 * apex (`<subdomain>.vetra.io`), so the subdomain is the leading DNS label.
 * Strips any port and lowercases.
 */
export declare function hostToSubdomain(host: string): string | null;
/**
 * Look up the environment read-model row for a studio host. Returns null when
 * no environment matches (unknown host, or a non-apex host we don't manage).
 */
export declare function findStudioByHost(db: Kysely<DB>, host: string): Promise<StudioRow | null>;
/**
 * All claimed studios currently READY — the sleep candidates the in-process
 * keeper evaluates (pre-eligibility; `isEligibleForSleep` filters further).
 */
export declare function listReadyStudios(db: Kysely<DB>): Promise<StudioRow[]>;
//# sourceMappingURL=db.d.ts.map