/**
 * Trellis DB — Sprites Deployment
 *
 * Deploys a Trellis DB server to a Sprites cloud environment.
 *
 * Sprites is a cloud VM platform. Each Sprite gets a persistent URL from
 * `sprite url` (typically `https://<name>-<org>.sprites.app`).
 *
 * Deployment steps:
 *   1. Bundle the server entrypoint with Bun
 *   2. Create or wake the target Sprite via `sprite exec`
 *   3. Upload the bundle + SQLite file (if seeding)
 *   4. Install Bun and register the server via `sprite-env services` (port 8080)
 *   5. Write the resulting URL + API key back to .trellis-db.json
 *
 * Prerequisites:
 *   - `sprite` CLI installed and authenticated (https://docs.sprites.dev)
 *   - SPRITES_API_KEY env var (or passed directly)
 *
 * @module trellis/server
 */
export interface DeployOptions {
    /** Sprite name (becomes the subdomain: <name>.sprites.app). */
    name: string;
    /** Path to the local .trellis-db directory to deploy. */
    dbPath?: string;
    /** API key for the deployed server. Auto-generated if not provided. */
    apiKey?: string;
    /** JWT secret for the deployed server. Auto-generated if not provided. */
    jwtSecret?: string;
    /** Port to run on inside the Sprite (default: 3000). */
    port?: number;
    /** Directory where .trellis-db.json lives. Default: cwd. */
    configDir?: string;
    /** Progress callback. */
    onProgress?: (msg: string) => void;
    /**
     * Skip Sprite provisioning — validate name and write `.trellis-db.json` only.
     * For local dry-runs and CI (`trellis deploy --stub`).
     */
    stub?: boolean;
}
export interface DeployResult {
    url: string;
    name: string;
    apiKey: string;
}
export declare function deploy(opts: DeployOptions): Promise<DeployResult>;
/**
 * Slice D — install a sprite's device key on the sprite VM. Writes
 * `.trellis/devices/local.json` (device key only; the root identity key never
 * leaves the user's machine) so the sprite signs as the identity via
 * `getSigningMaterial` (device-first).
 */
export declare function installSpriteDeviceKey(name: string, local: {
    deviceId: string;
    identityEntityId: string;
    did: string;
    publicKey: string;
    privateKey: string;
    deviceLabel?: string;
    kind?: string;
    transport?: string;
    createdAt: string;
}, onProgress?: (msg: string) => void): Promise<void>;
/**
 * Generate a self-contained server entrypoint script that starts the
 * Trellis DB HTTP server with the given config baked in.
 *
 * Sprite deploys mount a durable {@link BlobStore} under
 * `/home/sprite/trellis-db` so `/blob` survives restarts alongside graph data.
 */
export declare function generateServerEntrypoint(opts: {
    port: number;
    apiKey: string;
    jwtSecret: string;
}): string;
//# sourceMappingURL=deploy.d.ts.map