import { Request, IRouter } from 'express';
import { PartialOIDCConfig } from './types';
/**
 * Security configuration structure (subset needed for OIDC admin).
 * Allows additional properties since the full security config has many fields.
 */
export interface SecurityConfigForOIDC {
    oidc?: PartialOIDCConfig;
    [key: string]: unknown;
}
/**
 * Dependencies injected by serverroutes for OIDC admin endpoints.
 */
export interface OIDCAdminDependencies {
    /** Check if request is authorized for configuration changes */
    allowConfigure: (req: Request) => boolean;
    /** Get the current security configuration */
    getSecurityConfig: () => SecurityConfigForOIDC;
    /** Save the security configuration */
    saveSecurityConfig: (config: SecurityConfigForOIDC, callback: (err?: Error | null) => void) => void;
    /** Update OIDC config in memory (clears cache so changes take effect immediately) */
    updateOIDCConfig?: (newOidcConfig: PartialOIDCConfig) => void;
}
/**
 * Register OIDC admin routes for configuration management.
 * These endpoints are separate from the auth flow routes in oidc-auth.ts.
 */
export declare function registerOIDCAdminRoutes(app: IRouter, deps: OIDCAdminDependencies): void;
//# sourceMappingURL=oidc-admin.d.ts.map