import { IApiBaseEntity } from '../../../../interface/api-base-entity.interface';
import { IApiAuthorizationDecision, IApiAuthorizationPrincipal, IApiAuthorizationRequestMetadata, IApiAuthorizationResourceDefinition, IApiPolicyDocumentRecord, IApiResolvedPolicyAttachments } from '../../../../interface/class/api/authorization';
import { TApiAuthorizationRuleTransformPayload } from '../../../../type/class/api/authorization/rule/transform-payload.type';
import { ApiAuthorizationIamQueryPlanner } from './query-planner.class';
export declare class ApiAuthorizationIamEngine {
    private readonly queryPlanner;
    constructor(queryPlanner: ApiAuthorizationIamQueryPlanner);
    evaluate<E extends IApiBaseEntity>(options: {
        action: string;
        attachments: IApiResolvedPolicyAttachments;
        documents: ReadonlyArray<IApiPolicyDocumentRecord>;
        policyNamespace: string;
        principal: IApiAuthorizationPrincipal;
        requestMetadata: IApiAuthorizationRequestMetadata<E>;
        resource?: E;
        resourceDefinition: IApiAuthorizationResourceDefinition<E>;
    }): Promise<IApiAuthorizationDecision<E, TApiAuthorizationRuleTransformPayload<E>>>;
    private buildDecision;
    private evaluateDocumentSet;
    private evaluateOperator;
    private isRecord;
    private isStatementMatched;
    private matchesWildcardPattern;
    private mergeScopes;
    private normalizeComparable;
    private resolveConditionValue;
    private resolveDocumentRecord;
    private resolvePathValue;
    private resolveResourceString;
}
