import type EventEmitter2 from "eventemitter2"; import type { ClientAuthToken, GlobalConfigStore } from "../config-store/global"; import type { Log } from "../logger/log-entry"; export interface AuthToken { token: string; refreshToken: string; tokenValidity: number; } export declare function isTokenExpired(token: ClientAuthToken): boolean; /** * Checks with the backend whether the provided client auth token is valid. */ export declare function isTokenValid({ authToken, log }: { authToken: string; log: Log; }): Promise; export declare function saveAuthToken(log: Log, globalConfigStore: GlobalConfigStore, tokenResponse: AuthToken, domain: string): Promise; /** * Returns the full client auth token from the local DB. * * In the inconsistent/erroneous case of more than one auth token existing in the local store, picks the first auth * token and deletes all others. */ export declare function getStoredAuthToken(log: Log, globalConfigStore: GlobalConfigStore, domain: string): Promise<{ token: string; refreshToken: string; validity: Date; } | undefined>; /** * If a persisted client auth token was found, or if the GROW_AUTH_TOKEN environment variable is present, * returns it. Returns null otherwise. * * Note that the GROW_AUTH_TOKEN environment variable takes precedence over a persisted auth token if both are * present. */ export declare function getAuthToken(log: Log, globalConfigStore: GlobalConfigStore, domain: string): Promise; /** * If a persisted client auth token exists, deletes it. */ export declare function clearAuthToken(log: Log, globalConfigStore: GlobalConfigStore, domain: string): Promise; export declare function refreshAuthTokenAndWriteToConfigStore(log: Log, globalConfigStore: GlobalConfigStore, domain: string, refreshToken: string): Promise<{ refreshToken: string; accessToken: string; tokenValidity: number; }>; export declare class AuthRedirectServer { port?: number | undefined; private log; private server?; private enterpriseDomain; private events; constructor(enterpriseDomain: string, events: EventEmitter2, log: Log, port?: number | undefined); start(): Promise; close(): Promise; createApp(): Promise; }