import type { Request } from 'express';
import { AuthService } from './auth.service';
import { SignupDto } from './dto/signup.dto';
import { LoginDto } from './dto/login.dto';
import { RefreshTokenDto } from './dto/refresh-token.dto';
import { ForgotPasswordDto } from './dto/forgot-password.dto';
import { ResetPasswordDto } from './dto/reset-password.dto';
import { ChangePasswordDto } from './dto/change-password.dto';
import { User } from '../users/entities/user.entity';
export declare class AuthController {
    private readonly authService;
    constructor(authService: AuthService);
    signup(signupDto: SignupDto): Promise<{
        access_token: string;
        refresh_token: string;
        expires_in: any;
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../users/entities/user.entity").UserRole;
        };
        organization: {
            id: string;
            name: string;
            slug: string;
        };
    }>;
    login(loginDto: LoginDto, req: Request): Promise<{
        access_token: string;
        refresh_token: string;
        expires_in: any;
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../users/entities/user.entity").UserRole;
            is_super_admin: boolean;
        };
        organization: {
            id: string;
            name: string;
            slug: string;
            plan: import("../organizations/entities/organization.entity").OrganizationPlan;
        };
    }>;
    refreshTokens(refreshTokenDto: RefreshTokenDto, req: Request): Promise<{
        access_token: string;
        refresh_token: string;
        expires_in: any;
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../users/entities/user.entity").UserRole;
            is_super_admin: boolean;
        };
        organization: {
            id: string;
            name: string;
            slug: string;
            plan: import("../organizations/entities/organization.entity").OrganizationPlan;
        };
    }>;
    logout(refreshTokenDto: RefreshTokenDto): Promise<{
        message: string;
    }>;
    forgotPassword(forgotPasswordDto: ForgotPasswordDto): Promise<{
        message: string;
        token?: undefined;
    } | {
        message: string;
        token: string;
    }>;
    resetPassword(resetPasswordDto: ResetPasswordDto): Promise<{
        message: string;
    }>;
    getMe(user: User): Promise<{
        user: {
            id: string;
            email: string;
            name: string;
            role: import("../users/entities/user.entity").UserRole;
            is_super_admin: boolean;
        };
        organization: {
            id: string;
            name: string;
            slug: string;
            plan: import("../organizations/entities/organization.entity").OrganizationPlan;
        };
    }>;
    changePassword(user: User, changePasswordDto: ChangePasswordDto): Promise<{
        message: string;
    }>;
}
