export interface Secret {
    ARN?: string;
    Name?: string;
    Description?: string;
    KmsKeyId?: string;
    RotationEnabled?: boolean;
    RotationLambdaARN?: string;
    RotationRules?: {
        AutomaticallyAfterDays?: number;
        Duration?: string;
        ScheduleExpression?: string;
    };
    LastRotatedDate?: string;
    LastChangedDate?: string;
    LastAccessedDate?: string;
    DeletedDate?: string;
    NextRotationDate?: string;
    Tags?: {
        Key: string;
        Value: string;
    }[];
    SecretVersionsToStages?: Record<string, string[]>;
    CreatedDate?: string;
    PrimaryRegion?: string;
}
export interface SecretValue {
    ARN?: string;
    Name?: string;
    VersionId?: string;
    SecretBinary?: string;
    SecretString?: string;
    VersionStages?: string[];
    CreatedDate?: string;
}
export interface CreateSecretOptions {
    Name: string;
    Description?: string;
    KmsKeyId?: string;
    SecretBinary?: string;
    SecretString?: string;
    Tags?: {
        Key: string;
        Value: string;
    }[];
    AddReplicaRegions?: {
        Region: string;
        KmsKeyId?: string;
    }[];
    ForceOverwriteReplicaSecret?: boolean;
    ClientRequestToken?: string;
}
export interface UpdateSecretOptions {
    SecretId: string;
    Description?: string;
    KmsKeyId?: string;
    SecretBinary?: string;
    SecretString?: string;
}
export interface PutSecretValueOptions {
    SecretId: string;
    SecretBinary?: string;
    SecretString?: string;
    VersionStages?: string[];
    ClientRequestToken?: string;
}
export interface GetSecretValueOptions {
    SecretId: string;
    VersionId?: string;
    VersionStage?: string;
}
export interface RotationRules {
    AutomaticallyAfterDays?: number;
    Duration?: string;
    ScheduleExpression?: string;
}
/**
 * Secrets Manager client using direct API calls
 */
export declare class SecretsManagerClient {
    private client;
    private region;
    constructor(region?: string, profile?: string);
    /**
     * Create a new secret
     */
    createSecret(options: CreateSecretOptions): Promise<{
        ARN?: string;
        Name?: string;
        VersionId?: string;
        ReplicationStatus?: {
            Region: string;
            Status: string;
            StatusMessage?: string;
        }[];
    }>;
    /**
     * Update an existing secret's metadata
     */
    updateSecret(options: UpdateSecretOptions): Promise<{
        ARN?: string;
        Name?: string;
        VersionId?: string;
    }>;
    /**
     * Put a new version of a secret value
     */
    putSecretValue(options: PutSecretValueOptions): Promise<{
        ARN?: string;
        Name?: string;
        VersionId?: string;
        VersionStages?: string[];
    }>;
    /**
     * Get the value of a secret
     */
    getSecretValue(options: GetSecretValueOptions): Promise<SecretValue>;
    /**
     * Describe a secret (metadata only)
     */
    describeSecret(secretId: string): Promise<Secret>;
    /**
     * List secrets
     */
    listSecrets(options?: {
        MaxResults?: number;
        NextToken?: string;
        Filters?: {
            Key: string;
            Values: string[];
        }[];
        SortOrder?: 'asc' | 'desc';
    }): Promise<{
        SecretList?: Secret[];
        NextToken?: string;
    }>;
    /**
     * Delete a secret
     */
    deleteSecret(options: {
        SecretId: string;
        RecoveryWindowInDays?: number;
        ForceDeleteWithoutRecovery?: boolean;
    }): Promise<{
        ARN?: string;
        Name?: string;
        DeletionDate?: string;
    }>;
    /**
     * Restore a deleted secret
     */
    restoreSecret(secretId: string): Promise<{
        ARN?: string;
        Name?: string;
    }>;
    /**
     * Configure automatic rotation for a secret
     */
    rotateSecret(options: {
        SecretId: string;
        ClientRequestToken?: string;
        RotationLambdaARN?: string;
        RotationRules?: RotationRules;
        RotateImmediately?: boolean;
    }): Promise<{
        ARN?: string;
        Name?: string;
        VersionId?: string;
    }>;
    /**
     * Cancel rotation for a secret
     */
    cancelRotateSecret(secretId: string): Promise<{
        ARN?: string;
        Name?: string;
    }>;
    /**
     * Get resource policy for a secret
     */
    getResourcePolicy(secretId: string): Promise<{
        ARN?: string;
        Name?: string;
        ResourcePolicy?: string;
    }>;
    /**
     * Put resource policy for a secret
     */
    putResourcePolicy(options: {
        SecretId: string;
        ResourcePolicy: string;
        BlockPublicPolicy?: boolean;
    }): Promise<{
        ARN?: string;
        Name?: string;
    }>;
    /**
     * Delete resource policy for a secret
     */
    deleteResourcePolicy(secretId: string): Promise<{
        ARN?: string;
        Name?: string;
    }>;
    /**
     * Tag a secret
     */
    tagResource(options: {
        SecretId: string;
        Tags: {
            Key: string;
            Value: string;
        }[];
    }): Promise<void>;
    /**
     * Remove tags from a secret
     */
    untagResource(options: {
        SecretId: string;
        TagKeys: string[];
    }): Promise<void>;
    /**
     * Helper: Set a string secret
     */
    setString(name: string, value: string, options?: {
        description?: string;
        kmsKeyId?: string;
        tags?: {
            Key: string;
            Value: string;
        }[];
    }): Promise<{
        ARN?: string;
        VersionId?: string;
    }>;
    /**
     * Helper: Set a JSON secret
     */
    setJson(name: string, value: Record<string, any>, options?: {
        description?: string;
        kmsKeyId?: string;
        tags?: {
            Key: string;
            Value: string;
        }[];
    }): Promise<{
        ARN?: string;
        VersionId?: string;
    }>;
    /**
     * Helper: Get a string secret value
     */
    getString(secretId: string): Promise<string | undefined>;
    /**
     * Helper: Get a JSON secret value
     */
    getJson<T = Record<string, any>>(secretId: string): Promise<T | undefined>;
    /**
     * Helper: List all secrets
     */
    listAll(): Promise<Secret[]>;
    /**
     * Parse secret response
     */
    private parseSecret;
}
