import { CodeExecutor, DataAdapters } from "@authhero/adapter-interfaces";
import type { SamlSigner } from "@authhero/saml/core";
import { Hooks } from "./Hooks";
import { EntityHooksConfig, OutboxConfig, SigningKeyModeOption, UserLinkingModeOption, UsernamePasswordProviderResolver, WebhookInvoker } from "./AuthHeroConfig";
import { StrategyHandler } from "../strategies";
declare type Fetcher = {
    fetch: typeof fetch;
};
export type Bindings = {
    ENVIRONMENT: string;
    AUTH_URL: string;
    JWKS_URL?: string;
    JWKS_SERVICE?: Fetcher;
    ISSUER: string;
    UNIVERSAL_LOGIN_URL?: string;
    OAUTH_API_URL?: string;
    ENCRYPTION_KEY?: string;
    data: DataAdapters;
    hooks?: Hooks;
    /**
     * Entity CRUD hooks for when resources are created/updated/deleted.
     * Use these to implement cross-tenant sync, audit logging, webhooks, etc.
     */
    entityHooks?: EntityHooksConfig;
    STRATEGIES?: {
        [strategy: string]: StrategyHandler;
    };
    JWKS_CACHE_TIMEOUT_IN_SECONDS: number;
    ORGANIZATION_NAME: string;
    SAML_SIGN_URL?: string;
    samlSigner?: SamlSigner;
    poweredByLogo?: {
        url: string;
        darkUrl?: string;
        alt: string;
        href?: string;
        height?: number;
    };
    codeExecutor?: CodeExecutor;
    webhookInvoker?: WebhookInvoker;
    outbox?: OutboxConfig;
    userLinkingMode?: UserLinkingModeOption;
    usernamePasswordProvider?: UsernamePasswordProviderResolver;
    signingKeyMode?: SigningKeyModeOption;
    /**
     * Allow outbound fetches (jwks_uri, request_uri) to localhost / private IP
     * ranges and over plain http. Intended for tests and local development;
     * leave unset (or false) in production so SSRF protection stays on.
     */
    ALLOW_PRIVATE_OUTBOUND_FETCH?: boolean;
};
export {};
