import { BindingKey, BindingTemplate, Interceptor } from '@loopback/core';
import { AnyObject } from '@loopback/repository';
import { VerifyFunction } from 'loopback4-authentication';
import { IAuthUser } from 'loopback4-authorization';
import { WebhookController } from './controllers';
import { IPostWebhookHandlerService, ConfigureIdpFunc, IdpResp, ITenantManagementServiceConfig, LeadUser, ResourceProvisionedWebhookPayload, WebhookConfig, WebhookNotificationServiceType } from './types';
import { IEventConnector } from './types/i-event-connector.interface';
export declare namespace TenantManagementServiceBindings {
    const Config: BindingKey<ITenantManagementServiceConfig | null>;
    /**
     * Binding key for the Idp keycloak provider.
     */
    const IDP_KEYCLOAK: BindingKey<ConfigureIdpFunc<IdpResp>>;
    /**
     * Binding key for the Idp Auth0 provider.
     */
    const IDP_AUTH0: BindingKey<ConfigureIdpFunc<IdpResp>>;
}
/**
 * Binding key for the lead token verifier.
 */
export declare const LEAD_TOKEN_VERIFIER: BindingKey<VerifyFunction.BearerFn<LeadUser>>;
/**
 * Binding key for the system user.
 */
export declare const SYSTEM_USER: BindingKey<IAuthUser & AnyObject>;
/**
 * Binding key for the webhook configuration.
 */
export declare const WEBHOOK_CONFIG: BindingKey<WebhookConfig>;
/**
 * Binding key for the webhook verifier.
 */
export declare const WEBHOOK_VERIFIER: BindingKey<Interceptor>;
export declare const CALLABCK_VERIFIER: BindingKey<Interceptor>;
/**
 * Binding key for the webhook handler extension point.
 */
export declare const WebhookHandlerEP: BindingKey<WebhookController<never>>;
/**
 * Binding template for the webhook handler.
 */
export declare const asWebhookHandler: BindingTemplate;
export declare const WebhookNotificationService: BindingKey<WebhookNotificationServiceType>;
export declare const EventConnectorBinding: BindingKey<IEventConnector<unknown>>;
export declare const PostWebhookHandlerServiceKey: BindingKey<IPostWebhookHandlerService<ResourceProvisionedWebhookPayload>>;
