import type { IAuthPayload, IAuthSession, IAuthSessionInput } from '../models/auth-session';
import type { AuthConfig } from '../interfaces/auth-config';
export declare abstract class AuthService {
    protected readonly authConfig: AuthConfig;
    protected readonly sessionPrefix: string;
    constructor(authConfig: AuthConfig);
    createSession(payload: IAuthSessionInput): Promise<IAuthSession>;
    decodeJWT(token: string): IAuthPayload;
    validateJWT(token: string): IAuthPayload;
    getSecret(): string;
    getSessionId(payload?: IAuthSessionInput): string;
    abstract saveSession(session: IAuthSession): Promise<IAuthSession>;
    abstract getSession(id: string): Promise<IAuthSession | null>;
    abstract deleteSession(id: string): Promise<void>;
}
