/**
 * Route Guards Implementation
 * Access control and navigation guards
 */
import { Route, RouteGuard, Navigation } from './types';
import { Effect } from '../core/effect';
/**
 * Creates a guarded route that checks permissions before navigation
 */
export declare const withGuard: <A>(route: Route<A>, _guard: RouteGuard<A>) => Route<A>;
/**
 * Multiple guards combinator
 */
export declare const withGuards: <A>(route: Route<A>, guards: RouteGuard<A>[]) => Route<A>;
/**
 * Authentication guard
 */
export declare const authGuard: <A>(isAuthenticated: () => Effect<boolean>) => RouteGuard<A>;
/**
 * Role-based guard
 */
export declare const roleGuard: <A>(requiredRole: string, getUserRole: () => Effect<string | null>) => RouteGuard<A>;
/**
 * Confirmation guard
 */
export declare const confirmGuard: <A>(message: string) => RouteGuard<A>;
/**
 * Navigation guard executor
 * Checks all guards before allowing navigation
 */
export declare const executeGuards: <A>(guards: RouteGuard<A>[], params: A, type: 'activate' | 'deactivate') => Promise<boolean>;
/**
 * Guarded navigation wrapper
 */
export declare const createGuardedNavigation: <A>(navigation: Navigation<A>, _guards: RouteGuard<A>[]) => Navigation<A>;
/**
 * Guard composition utilities
 */
export declare const composeGuards: <A>(..._guards: RouteGuard<A>[]) => RouteGuard<A>;
/**
 * Conditional guard
 */
export declare const conditionalGuard: <A>(condition: (params: A) => boolean, guard: RouteGuard<A>) => RouteGuard<A>;
