import { Type } from '@nestjs/common';
import { JwtSignOptions } from '@nestjs/jwt';
import { ICookieSerializeOptions } from '../helpers';
import { AuthTransferTokenMethod } from './auth-transfer-token-method.enum';
export interface IAuthDefinitions {
    basicAuth?: {
        username: string;
        password: string;
        realm?: string;
    };
    jwt?: {
        secret: string;
        signOptions?: Omit<JwtSignOptions, 'expiresIn'>;
        expiresIn: string | number;
        refreshTokenExpiresIn: string | number;
    };
    impersonate?: {
        isEnabled: boolean;
        cipher: string;
        password: string;
    };
    redactedFields?: string[];
    ignoredRoutes?: string[];
    enableHashingToken?: boolean;
    hashingSecretKey?: string;
    transferTokenMethod?: AuthTransferTokenMethod;
    cookieOptions?: Pick<ICookieSerializeOptions, 'domain' | 'path' | 'sameSite' | 'signed' | 'httpOnly' | 'secure'>;
    usernameField?: string;
    passwordField?: string;
    requestPayload?: Type;
    httpAdaptorType: 'fastify' | 'express';
}
