/**
 * Unified Secrets Management Layer
 * Abstracts secrets retrieval across different cloud platforms
 * Supports: AWS Secrets Manager, Parameter Store, Cloudflare KV, Deno env
 */
import type { GetSecretOptions, SecretConfig, SecretsManagerInstance, SetSecretOptions } from './type';
/**
 * SecretsManager - Unified interface for retrieving secrets
 * Sealed namespace for immutability
 */
export declare const SecretsManager: Readonly<{
    /**
     * Get or create singleton instance
     */
    getInstance(config?: SecretConfig): SecretsManagerInstance;
    /**
     * Get secret value from appropriate backend
     */
    getSecret(key: string, options?: GetSecretOptions): Promise<string>;
    /**
     * Set secret value
     */
    setSecret(key: string, value: string, options?: SetSecretOptions): Promise<void>;
    /**
     * Delete secret
     */
    deleteSecret(key: string): Promise<void>;
    /**
     * Rotate secret (trigger new secret generation)
     */
    rotateSecret(key: string): Promise<void>;
    /**
     * Get all secrets matching pattern
     */
    listSecrets(pattern?: string): Promise<string[]>;
    /**
     * Clear cache (useful after rotation)
     */
    clearCache(key?: string): void;
}>;
/**
 * Predefined secret keys
 * Sealed namespace for immutability
 */
export declare const SECRETS: Readonly<{
    readonly DB_USERNAME: "db/username";
    readonly DB_PASSWORD: "db/password";
    readonly DB_HOST: "db/host";
    readonly DB_PORT: "db/port";
    readonly DB_DATABASE: "db/database";
    readonly JWT_SECRET: "jwt/secret";
    readonly JWT_REFRESH_SECRET: "jwt/refresh-secret";
    readonly ENCRYPTION_KEY: "encryption/key";
    readonly ENCRYPTION_IV: "encryption/iv";
    readonly STRIPE_API_KEY: "stripe/api-key";
    readonly SENDGRID_API_KEY: "sendgrid/api-key";
    readonly GITHUB_TOKEN: "github/token";
    readonly SESSION_SECRET: "session/secret";
    readonly CSRF_SECRET: "csrf/secret";
}>;
/**
 * Helper to get database credentials using secrets manager
 */
export declare function getDatabaseCredentials(): Promise<DatabaseCredentials>;
/**
 * Helper to get JWT secrets
 */
export declare function getJwtSecrets(): Promise<JwtSecrets>;
export interface DatabaseCredentials {
    username: string;
    password: string;
    host: string;
    port: number;
    database: string;
}
export interface JwtSecrets {
    secret: string;
    refreshSecret: string;
}
//# sourceMappingURL=SecretsManager.d.ts.map