import { NullableResultPromise } from "../base-types";
import { IExtendedContentHubClient } from "../clients/extended-client";
import { IRule } from "../contracts/policies/rule";
import { RuleResource } from "../models/policies/rule-resource";
export declare class RulesMapper {
    /**
     * Map rule resources to rules.
     * @param client - An instance of an extended Content Hub client
     * @param ruleResources - A collection of resources to map
     * @returns An array of rules.
     */
    static mapToRulesAsync(client: IExtendedContentHubClient, ruleResources: Array<RuleResource>): Promise<Array<IRule>>;
    /**
     * Map a rule resource to a rule instance.
     * @param client - An instance of an extended Content Hub client
     * @param ruleResource - A rule resource
     *
     * @returns A rule or null.
     */
    static mapToRuleAsync(client: IExtendedContentHubClient, ruleResource: RuleResource): NullableResultPromise<IRule>;
    /**
     * Map rule instances to rule resources.
     * @param client - An instance of an extended Content Hub client
     * @param rules - A collection of rules
     * @returns An array of rule resources.
     */
    static mapToRuleResourcesAsync(client: IExtendedContentHubClient, rules: Array<IRule>): Promise<Array<RuleResource>>;
    /**
     * Map a rule to a rule resource.
     * @param client - An instance of an extended Content Hub client
     * @param rule - A rule instance
     * @returns A rule resource or null.
     */
    static mapToRuleResourceAsync(client: IExtendedContentHubClient, rule: IRule): NullableResultPromise<RuleResource>;
}
