import { type SetupConfig } from './setup/index.js';
import type { Express } from 'express';
import { jwtVerify } from './helpers/kindeMiddlewareHelpers.js';
import { managementApi, GrantType, ConfigurationParameters, Configuration } from '@kinde-oss/kinde-typescript-sdk';
export * from './helpers/index.js';
export { managementApi, GrantType, ConfigurationParameters, Configuration, jwtVerify, };
/**
 * Encapsulates Kinde setup by completing creating internal TypeScript SDK
 * client, setting up its session manager interface and attaching auth router
 * to provided express instance.
 *
 * @param {Express} app
 * @param {SetupConfig} config
 */
export declare const setupKinde: <G extends GrantType>(config: SetupConfig<G>, app: Express) => {
    handleRedirectToApp: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, callbackURL: URL) => Promise<void>;
    isAuthenticated: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<boolean>;
    getUserProfile: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<import("@kinde-oss/kinde-typescript-sdk").UserType>;
    createOrg: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, options?: import("@kinde-oss/kinde-typescript-sdk").RegisterURLOptions) => Promise<URL>;
    getToken: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<string>;
    refreshTokens: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<import("@kinde-oss/kinde-typescript-sdk").OAuth2CodeExchangeResponse>;
    register: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, options?: import("@kinde-oss/kinde-typescript-sdk").RegisterURLOptions) => Promise<URL>;
    getUser: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<import("@kinde-oss/kinde-typescript-sdk").UserType>;
    logout: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<URL>;
    login: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, options?: import("@kinde-oss/kinde-typescript-sdk").RegisterURLOptions) => Promise<URL>;
    getUserOrganizations: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        orgCodes: string[];
    }>;
    getOrganization: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        orgCode: string;
    }>;
    getBooleanFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: boolean) => Promise<boolean>;
    getIntegerFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: number) => Promise<number>;
    getPermissions: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        permissions: string[];
        orgCode: string;
    }>;
    getPermission: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, name: string) => Promise<{
        orgCode: string;
        isGranted: boolean;
    }>;
    getClaimValue: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, claim: string, type?: import("@kinde-oss/kinde-typescript-sdk").ClaimTokenType) => Promise<unknown>;
    getStringFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: string) => Promise<string>;
    getClaim: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, claim: string, type?: import("@kinde-oss/kinde-typescript-sdk").ClaimTokenType) => Promise<{
        name: string;
        value: unknown;
    }>;
    getFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: string | number | boolean, type?: keyof import("@kinde-oss/kinde-typescript-sdk").FlagType) => Promise<import("@kinde-oss/kinde-typescript-sdk").GetFlagType>;
} | {
    isAuthenticated: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<boolean>;
    getToken: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<string>;
    logout: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<URL>;
    getUserOrganizations: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        orgCodes: string[];
    }>;
    getOrganization: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        orgCode: string;
    }>;
    getBooleanFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: boolean) => Promise<boolean>;
    getIntegerFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: number) => Promise<number>;
    getPermissions: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager) => Promise<{
        permissions: string[];
        orgCode: string;
    }>;
    getPermission: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, name: string) => Promise<{
        orgCode: string;
        isGranted: boolean;
    }>;
    getClaimValue: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, claim: string, type?: import("@kinde-oss/kinde-typescript-sdk").ClaimTokenType) => Promise<unknown>;
    getStringFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: string) => Promise<string>;
    getClaim: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, claim: string, type?: import("@kinde-oss/kinde-typescript-sdk").ClaimTokenType) => Promise<{
        name: string;
        value: unknown;
    }>;
    getFlag: (sessionManager: import("@kinde-oss/kinde-typescript-sdk").SessionManager, code: string, defaultValue?: string | number | boolean, type?: keyof import("@kinde-oss/kinde-typescript-sdk").FlagType) => Promise<import("@kinde-oss/kinde-typescript-sdk").GetFlagType>;
};
