import type { IEventHandler, DomainEvent } from "../../../features/eventPublisher/index.js"; import type { TenantBeforeDeletePayload, TenantAfterDeletePayload } from "./events.js"; export interface IDeleteTenantUseCase { execute(id: string): Promise; } /** Delete a tenant. */ export declare const DeleteTenantUseCase: import("@webiny/di").Abstraction; export declare namespace DeleteTenantUseCase { type Interface = IDeleteTenantUseCase; } export interface IDeleteTenantRepository { delete(id: string): Promise; } /** Persist tenant deletion. */ export declare const DeleteTenantRepository: import("@webiny/di").Abstraction; export declare namespace DeleteTenantRepository { type Interface = IDeleteTenantRepository; } export interface IDeleteTenantGateway { deleteTenant(id: string): Promise; } /** Storage gateway for tenant deletion. */ export declare const DeleteTenantGateway: import("@webiny/di").Abstraction; export declare namespace DeleteTenantGateway { type Interface = IDeleteTenantGateway; } /** Hook into tenant lifecycle before a tenant is deleted. */ export declare const TenantBeforeDeleteEventHandler: import("@webiny/di").Abstraction>>; export declare namespace TenantBeforeDeleteEventHandler { type Interface = IEventHandler>; type Event = DomainEvent; } /** Hook into tenant lifecycle after a tenant is deleted. */ export declare const TenantAfterDeleteEventHandler: import("@webiny/di").Abstraction>>; export declare namespace TenantAfterDeleteEventHandler { type Interface = IEventHandler>; type Event = DomainEvent; }