/** PKCE challenge method types */
export type PKCEChallengeMethod = "S256" | "plain";
/** Generate a PKCE code challenge from a code verifier
 * @param code_verifier base64url encoded code verifier
 * @param method The challenge method to use (defaults to "S256")
 * @returns The base64 url encoded code challenge (or plain verifier if method is "plain")
 */
export declare function generateChallenge(code_verifier: string, method?: PKCEChallengeMethod): Promise<string>;
/** Generate a PKCE challenge pair
 * @param length Length of the verifer (between 43-128). Defaults to 43.
 * @param method The challenge method to use. Defaults to "S256".
 * @returns PKCE challenge pair
 */
export default function pkceChallenge(length?: number, method?: PKCEChallengeMethod): Promise<{
    code_verifier: string;
    code_challenge: string;
    code_challenge_method: PKCEChallengeMethod;
}>;
/** Verify that a code_verifier produces the expected code challenge
 * @param code_verifier
 * @param expectedChallenge The code challenge to verify
 * @param method The challenge method used (defaults to "S256")
 * @returns True if challenges are equal. False otherwise.
 */
export declare function verifyChallenge(code_verifier: string, expectedChallenge: string, method?: PKCEChallengeMethod): Promise<boolean>;
