import { Response } from 'express';
import { ChangePasswordDto } from "../dtos/change-password.dto";
import { ConfirmForgotPasswordDto } from '../dtos/confirm-forgot-password.dto';
import { CreateApiKeyDto } from '../dtos/create-api-key.dto';
import { UpdateApiKeyDto } from '../dtos/update-api-key.dto';
import { InitiateForgotPasswordDto } from '../dtos/initiate-forgot-password.dto';
import { RefreshTokenDto } from '../dtos/refresh-token.dto';
import { SsoExchangeDto } from '../dtos/sso-exchange.dto';
import { SignInDto } from '../dtos/sign-in.dto';
import { RegisterPrivateDto } from '../dtos/register-private.dto';
import { SignUpDto } from '../dtos/sign-up.dto';
import { ActiveUserData } from "../interfaces/active-user-data.interface";
import { ApiKeyService } from '../services/api-key.service';
import { AuthenticationService } from '../services/authentication.service';
export declare class AuthenticationController {
    private readonly authService;
    private readonly apiKeyService;
    private readonly logger;
    constructor(authService: AuthenticationService, apiKeyService: ApiKeyService);
    signUp(signUpDto: SignUpDto): Promise<import("..").User>;
    signUpPrivate(signUpDto: RegisterPrivateDto, activeUser: ActiveUserData): Promise<import("..").User>;
    signIn(response: Response, signInDto: SignInDto): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            email: string;
            mobile: string;
            username: string;
            forcePasswordChange: boolean;
            id: number;
            roles: string[];
        };
    }>;
    refreshTokens(refreshTokenDto: RefreshTokenDto): Promise<{
        accessToken: string;
        refreshToken: string;
    }>;
    initiateForgotPassword(initiateForgotPasswordDto: InitiateForgotPasswordDto): Promise<{
        status: string;
        message: string;
        error: string;
        errorCode: string;
        data: {
            user: {
                email: string;
            };
        };
    }>;
    confirmForgotPassword(confirmForgotPasswordDto: ConfirmForgotPasswordDto): Promise<{
        status: string;
        message: string;
        error: string;
        errorCode: string;
        data: {};
    }>;
    changePassword(changePasswordDto: ChangePasswordDto, activeUser: ActiveUserData): Promise<boolean>;
    me(activeUser: ActiveUserData): Promise<{
        user: {
            email: string;
            mobile: string;
            username: string;
            id: number;
            roles: string[];
        };
        refreshToken: any;
    }>;
    logout(refreshToken: string): Promise<{
        message: string;
    }>;
    generateApiKey(dto: CreateApiKeyDto, activeUser: ActiveUserData): Promise<{
        apiKey: string;
        record: import("..").UserApiKey;
    }>;
    generateApiKeyForUser(userId: number, dto: CreateApiKeyDto): Promise<{
        apiKey: string;
        record: import("..").UserApiKey;
    }>;
    updateApiKey(id: number, dto: UpdateApiKeyDto, activeUser: ActiveUserData): Promise<void>;
    apiKeyMe(apiKey: string): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            email: string;
            mobile: string;
            username: string;
            forcePasswordChange: boolean;
            id: number;
            roles: string[];
        };
    }>;
    generateSsoCode(activeUser: ActiveUserData, authorization: string): Promise<{
        ssoCode: string;
    }>;
    exchangeSsoCode(ssoExchangeDto: SsoExchangeDto): Promise<{
        accessToken: string;
        refreshToken: string;
        user: {
            id: number;
            username: string;
            email: string;
            mobile: string;
            lastLoginProvider: string;
            roles: string[];
        };
    }>;
}
//# sourceMappingURL=authentication.controller.d.ts.map