/**
 * Persistence layer for Donobu flow environment data - a user-managed key-value
 * store that supplies configuration values (API keys, base URLs, feature flags,
 * etc.) to flows at runtime.
 *
 * **Not `process.env`.** Despite the "env" name, these values are *not* the
 * Node.js process environment variables. They are persisted, per-project data
 * that flows opt into via an allow-list (`envVars` in flow metadata). At
 * execution time, only the declared names are hydrated and made available to
 * tools through template interpolation (`{{$.env.VAR_NAME}}`).
 *
 * Multiple persistence backends can coexist (SQLite, in-memory, cloud storage)
 * and are layered by {@link EnvPersistenceRegistry} according to
 * `PERSISTENCE_PRIORITY`. Reads resolve from the first layer that holds a
 * value; writes fan out to every layer.
 *
 * @see EnvDataManager - business-logic wrapper that adds validation and
 *   multi-layer read/write orchestration on top of this interface.
 * @see EnvPersistenceRegistry - factory that assembles the ordered layer stack.
 */
export interface EnvPersistence {
    /**
     * Set a piece of environment data that is available across all flows.
     */
    setEnvironmentDatum(key: string, value: string): Promise<void>;
    /**
     * Delete a piece of environment data by its key.
     * No-op if the data does not exist.
     */
    deleteEnvironmentDatum(key: string): Promise<void>;
    /**
     * Retrieve a piece of environment data by its key.
     */
    getEnvironmentDatum(key: string): Promise<string | undefined>;
    /**
     * Get all environment data.
     */
    getEnvironmentData(): Promise<Record<string, string>>;
}
//# sourceMappingURL=EnvPersistence.d.ts.map