import pino from "pino";
/**
 * Interface representing a key pair with its passphrase.
 */
export interface KeyPair {
    publicKey: string;
    privateKey: string;
}
/**
 * Interface representing token key pairs for access and refresh tokens.
 */
export interface TokenKeyPairs {
    access: KeyPair;
    refresh: KeyPair;
}
/**
 * Options for generating RSA keys.
 */
export interface KeyGenerationOptions {
    modulusLength: number;
    publicKeyEncoding: {
        type: "spki";
        format: "pem";
    };
    privateKeyEncoding: {
        type: "pkcs8";
        format: "pem";
    };
}
/**
 * Configuration options for SecureKeyGenerator.
 */
export interface SecureKeyGeneratorConfig {
    keyDirectory?: string;
    filePermissions?: number;
    envFileName?: string;
    modulusLength?: number;
    logLevel?: string;
}
export interface LogEntry {
    time: string;
    logLevel: string;
    logMessage: string;
}
export type LogFn = (msg: string, ...args: any[]) => void;
export interface StepLogger extends pino.Logger {
    step: LogFn;
}
export type LogLevels = pino.Level | "step";
