import { LoggerService } from "@nestjs/common";
import { LogtoOAuthConfig } from "./config";
export declare const OAuthClientToken = "OAuthClient";
export declare class OAuthClient {
    private readonly config;
    private readonly logger;
    private logtoConfig;
    private logtoRestTemplate;
    static readonly prefix: string;
    constructor(config: LogtoOAuthConfig, logger: LoggerService);
    getSignInURI(signInType: SignInType): {
        uri: string;
        state: string;
    };
    getSignOutURI(): Promise<string>;
    fetchTokenByAuthorizationCode(code: string): Promise<{
        accessToken: string;
        idToken: string;
    }>;
    fetchAccessTokenByPAT(pat: string): Promise<{
        accessToken: string;
    }>;
    revokeToken(token: string): Promise<void>;
}
export declare enum SignInType {
    Admin = "admin",
    Dashboard = "dashboard"
}
