///
import { UrlWithParsedQuery } from 'url';
import { AuthorizationCode } from '../interfaces/authorization-code.interface';
import { Client } from '../interfaces/client.interface';
import { Model } from '../interfaces/model.interface';
import { User } from '../interfaces/user.interface';
import { Request } from '../request';
import { Response } from '../response';
import { CodeResponseType } from '../response-types/code-response-type';
export declare class AuthorizeHandler {
allowEmptyState: boolean;
authenticateHandler: any;
authorizationCodeLifetime: number;
model: Model;
constructor(options?: any);
handle(request: Request, response: Response): Promise;
generateAuthorizationCode(client: any, user: any, scope: any): Promise;
getAuthorizationCodeLifetime(): Date;
getClient(request: Request): Promise;
getScope: (request: Request) => any;
getState(request: any): any;
getUser(request: Request, response: Response): Promise;
getRedirectUri: (request: Request, client: any) => any;
saveAuthorizationCode(authorizationCode: string, expiresAt: Date, scope: string, client: Client, redirectUri: string, user: User): Promise;
getResponseType: (request: Request) => any;
buildSuccessRedirectUri: (redirectUri: string, responseType: CodeResponseType) => UrlWithParsedQuery;
buildErrorRedirectUri: (redirectUri: string, error: Error) => UrlWithParsedQuery;
updateResponse: (response: Response, redirectUri: UrlWithParsedQuery, state: string) => void;
}