/**
 * Keycloak Plugin Configuration
 *
 * Generic Keycloak authentication plugin for Vue 3 application
 * This plugin can be configured by consuming applications
 */
import type { App } from 'vue';
export interface KeycloakConfig {
    realm: string;
    url: string;
    clientId: string;
}
export interface KeycloakInitOptions {
    flow?: 'standard' | 'implicit' | 'hybrid';
    checkLoginIframe?: boolean;
    onLoad?: 'login-required' | 'check-sso';
    pkceMethod?: 'S256' | 'plain';
    enableLogging?: boolean;
}
export interface KeycloakLogoutOptions {
    redirectUri?: string;
}
export interface KeycloakCallbacks {
    onAuthLogout?: () => void;
    onReady?: (keycloakInstance: any) => void;
    onInitError?: (error: any) => void;
    onAuthSuccess?: () => void;
    onAuthError?: (error: any) => void;
}
export interface KeycloakPluginOptions {
    config: KeycloakConfig;
    init?: KeycloakInitOptions;
    logout?: KeycloakLogoutOptions;
    callbacks?: KeycloakCallbacks;
    exposeGlobally?: boolean;
}
/**
 * Setup Keycloak plugin for Vue 3 application
 *
 * @param app - Vue application instance
 * @param options - Keycloak configuration options
 * @returns Vue app with Keycloak plugin installed
 *
 * @example
 * ```ts
 * import { createApp } from 'vue'
 * import { setupKeycloak } from '@amirjalili1374/ui-kit'
 *
 * const app = createApp(App)
 *
 * setupKeycloak(app, {
 *   config: {
 *     realm: 'my-realm',
 *     url: 'https://keycloak.example.com',
 *     clientId: 'my-client'
 *   },
 *   init: {
 *     onLoad: 'login-required',
 *     pkceMethod: 'S256'
 *   },
 *   callbacks: {
 *     onReady: (keycloak) => {
 *       console.log('Keycloak ready')
 *     }
 *   }
 * })
 * ```
 */
export declare function setupKeycloak(app: App, options: KeycloakPluginOptions): App<any>;
//# sourceMappingURL=key-clock.d.ts.map