import { JwtService } from '@nestjs/jwt';
import { AppConfig } from '../common/config/configuration';
import { AuthRepository } from './auth.repository';
export interface RequestMeta {
    ip?: string;
    userAgent?: string;
    requestId?: string;
    deviceLabel?: string;
    mobile: boolean;
}
export interface IssuedSession {
    accessToken: string;
    refreshToken: string;
    csrfToken: string;
    expiresIn: number;
    sessionId: string;
}
export declare class SessionService {
    private readonly config;
    private readonly jwt;
    private readonly repo;
    constructor(config: AppConfig, jwt: JwtService, repo: AuthRepository);
    expiresInSeconds(): number;
    issue(input: {
        userId?: string;
        adminUserId?: string;
        typ: 'user' | 'admin';
        meta: RequestMeta;
    }): Promise<IssuedSession>;
    rotate(refreshToken: string, typ: 'user' | 'admin', meta: RequestMeta): Promise<IssuedSession>;
}
