export interface AuthSetupConfig {
    /** The app's host URL (e.g., https://mentor.example.com) */
    hostUrl: string;
    /** The auth service host URL (e.g., https://auth.example.com) */
    authHost: string;
    /** App name used in the login redirect URL (e.g., 'mentor', 'skills') */
    appName: string;
    /** Function to match the post-login URL to confirm authentication succeeded */
    postLoginUrlMatcher: (url: URL) => boolean;
    /** Auth flow type. Defaults to reading AUTH_FLOW env var or 'username_password' */
    authFlow?: 'username_password' | 'magic_link' | 'sso' | 'direct_sso';
    /** Auth IDP name for SSO flows */
    authIdp?: string;
}
/**
 * Creates a Playwright setup test function for authentication.
 * Use this as the test body in your auth.setup.ts file:
 *
 * ```ts
 * import { test as setup } from '@iblai/iblai-js/playwright';
 * import { createAuthSetup } from '@iblai/iblai-js/playwright';
 *
 * setup('authenticate', createAuthSetup({
 *   hostUrl: process.env.MENTOR_NEXTJS_HOST || '',
 *   authHost: process.env.AUTH_HOST || '',
 *   appName: 'mentor',
 *   postLoginUrlMatcher: (url) => url.href.includes('/platform/'),
 * }));
 * ```
 */
export declare function createAuthSetup(config: AuthSetupConfig): ({ browser, step }: {
    browser: any;
    step: any;
}, testInfo: any) => Promise<void>;
