import { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
import { IApiAuthorizationDecision, IApiAuthorizationPrincipal, IApiAuthorizationRequestMetadata } from '../../../interface/class/api/authorization';
import { IApiControllerAuthorizationProperties, IApiControllerRouteAuthorizationProperties } from '../../../interface/decorator/api/controller/properties';
import { TApiAuthorizationRuleTransformPayload } from '../../../type/class/api/authorization/rule/transform-payload.type';
import { ApiAuthorizationRuntime } from './runtime.class';
import { EApiRouteType } from '../../../enum/decorator/api';
export declare class ApiAuthorizationSimulator {
    private readonly runtime;
    constructor(runtime: ApiAuthorizationRuntime);
    evaluate<E extends IApiBaseEntity>(options: {
        action: string;
        authorization: IApiControllerAuthorizationProperties<E>;
        entity: new () => E;
        principal: IApiAuthorizationPrincipal;
        requestMetadata?: IApiAuthorizationRequestMetadata<E>;
        resource?: E;
        routeAuthorization?: IApiControllerRouteAuthorizationProperties;
        routeType?: EApiRouteType;
    }): Promise<IApiAuthorizationDecision<E, TApiAuthorizationRuleTransformPayload<E>>>;
}
