export declare const oauthPageStyles = "\n    body {\n        font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Open Sans', 'Helvetica Neue', sans-serif;\n        background-color: #f8fafc;\n        margin: 0;\n        padding: 0;\n        min-height: 100vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 14px;\n        line-height: 1.4;\n    }\n    .container {\n        background: white;\n        border-radius: 8px;\n        border: 1px solid #e9ecef;\n        box-shadow: 0px 1px 2px 0px rgba(10, 13, 18, 0.05);\n        padding: 24px;\n        max-width: 400px;\n        width: 90%;\n        text-align: center;\n    }\n    .logo {\n        width: 130px;\n        height: auto;\n        margin: 0 auto 24px auto;\n        display: block;\n    }\n    h1 {\n        color: #111418;\n        margin: 0 0 16px 0;\n        font-size: 18px;\n        font-weight: 600;\n        text-align: center;\n    }\n    p {\n        color: #6c757d;\n        margin: 0 0 12px 0;\n        line-height: 1.4;\n        font-size: 14px;\n    }\n    .icon {\n        width: 32px;\n        height: 32px;\n        margin: 0 auto 16px auto;\n        display: block;\n    }\n    .success .icon {\n        color: #111418;\n    }\n    .error .icon {\n        color: #6c757d;\n    }\n    .stack {\n        display: flex;\n        flex-direction: column;\n        gap: 16px;\n    }\n";
declare const OAUTH_ICONS: {
    readonly success: "<circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M9 12l2 2 4-4\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>";
    readonly error: "<circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M15 9l-6 6M9 9l6 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>";
    readonly sessionExpired: "<circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M12 6v6l4 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>";
};
export type OAuthResponseStatus = 'success' | 'error';
export type OAuthIconType = keyof typeof OAUTH_ICONS;
export interface OAuthHiddenInput {
    name: string;
    value: string;
}
export interface OAuthUser {
    firstName: string;
    lastName: string;
    organizationName: string;
}
export interface OAuthScopeDescription {
    title: string;
    description: string;
}
export interface OAuthAuthorizeParams {
    action: string;
    client_id: string;
    client_name: string;
    scope: string;
    scopes: OAuthScopeDescription[];
    user: OAuthUser;
    hiddenInputs: OAuthHiddenInput[];
}
export interface OAuthRedirectParams {
    redirectUrl: string;
    message: string;
}
/**
 * Parses a scope string (e.g. "read write") and returns an array of scope objects with descriptions
 */
export declare const parseScopeString: (scopeString: string) => OAuthScopeDescription[];
/**
 * Gets a friendly client name from the client_id
 */
export declare const getClientName: (clientId: string) => string;
/**
 * Generates an OAuth response HTML page using Handlebars templating
 * This prevents XSS issues by auto-escaping content while still allowing safe HTML in icons and styles
 */
export declare const generateOAuthResponseHtml: (status: OAuthResponseStatus, title: string, messages: string[], iconType?: OAuthIconType) => string;
/**
 * Generates a success OAuth response
 */
export declare const generateOAuthSuccessResponse: (title?: string, messages?: string[]) => string;
/**
 * Generates an error OAuth response
 */
export declare const generateOAuthErrorResponse: (title: string, messages: string[], iconType?: OAuthIconType) => string;
/**
 * Generates an OAuth authorization page HTML using Handlebars templating
 * This prevents XSS issues by auto-escaping all user content
 */
export declare const generateOAuthAuthorizePage: (params: OAuthAuthorizeParams) => string;
/**
 * Generates an OAuth redirect page HTML using JavaScript redirect
 * This prevents CSP errors by using JavaScript-based redirection instead of HTTP redirects
 */
export declare const generateOAuthRedirectPage: (params: OAuthRedirectParams) => string;
export {};
//# sourceMappingURL=oauth.d.ts.map