import { AuthTestResponse } from "slack-web-api-client";
import { OAuthErrorCode } from "./error-codes";
import { Installation } from "./installation";
export interface OAuthStartPageRendererArgs {
    url: string;
    immediateRedirect: boolean;
}
/**
 * Start page (/slack/install) content renderer.
 */
export type OAuthStartPageRenderer = (args: OAuthStartPageRendererArgs) => Promise<string>;
/**
 * Generates an HTML data for the /slack/install page.
 * @param url the URL to start the OAuth flow
 * @returns HTML data
 */
export declare function renderDefaultOAuthStartPage({ url, immediateRedirect }: OAuthStartPageRendererArgs): Promise<string>;
export declare function renderSimpleCSSOAuthStartPage({ url, immediateRedirect }: OAuthStartPageRendererArgs): Promise<string>;
export interface OAuthErrorPageRendererArgs {
    installPath: string;
    reason: OAuthErrorCode;
}
/**
 * Error page content renderer.
 */
export type OAuthErrorPageRenderer = (args: OAuthErrorPageRendererArgs) => Promise<string>;
/**
 * Generates an HTML data indicating an error for the /slack/oauth_redirect page.
 * @param installPath the path to start the OAuth flow again
 * @param reason the error reason code
 * @returns HTML data
 */
export declare function renderDefaultOAuthErrorPage({ installPath, reason }: OAuthErrorPageRendererArgs): Promise<string>;
export declare function renderSimpleCSSOAuthErrorPage({ installPath, reason }: OAuthErrorPageRendererArgs): Promise<string>;
export interface OAuthCompletionPageRendererArgs {
    appId: string;
    teamId: string;
    isEnterpriseInstall: boolean | undefined;
    enterpriseUrl: string | undefined;
    installation: Installation;
    authTestResponse: AuthTestResponse;
}
/**
 * Error page content renderer.
 */
export type OAuthCompletionPageRenderer = (args: OAuthCompletionPageRendererArgs) => Promise<string>;
/**
 * Generates an HTML data indicating app installation successfully completed for the /slack/oauth_redirect page.
 * @param appId the app's ID
 * @param teamId workspace ID to head to
 * @param isEnterpriseInstall org-wide installation or not
 * @param enterpriseUrl the management console URL for Enterprise Grid admins
 * @param installation installation data
 * @param authTestResponse auth.test API response
 * @returns HTML data
 */
export declare function renderDefaultOAuthCompletionPage({ appId, teamId, isEnterpriseInstall, enterpriseUrl, }: OAuthCompletionPageRendererArgs): Promise<string>;
export declare function renderSimpleCSSOAuthCompletionPage({ appId, teamId, isEnterpriseInstall, enterpriseUrl, }: OAuthCompletionPageRendererArgs): Promise<string>;
//# sourceMappingURL=oauth-page-renderer.d.ts.map