import { Nullable, NullableResultPromise } from "../base-types";
import { IExtendedContentHubClient } from "../clients/extended-client";
import { IPolicy } from "../contracts/policies/policy";
import { IUserGroupPolicy } from "../contracts/policies/user-group-policy";
import { IUserPolicy } from "../contracts/policies/user-policy";
import { PolicyResource } from "../models/policies/policy-resource";
export declare class PolicyMapper {
    /**
     * Map a policy resource to a user group policy instance.
     * @param client - An instance of an extended Content Hub client
     * @param ruleResource - A policy resource
     * @returns a user group policy or null.
     */
    static mapToUserGroupPolicyAsync(client: IExtendedContentHubClient, policyResource: Nullable<PolicyResource>): NullableResultPromise<IUserGroupPolicy>;
    /**
     * Map a policy resource to a user policy instance.
     * @param client - An instance of an extended Content Hub client
     * @param policyResource - A policy resource
     * @returns a user policy or null.
     */
    static mapToUserPolicyAsync(client: IExtendedContentHubClient, policyResource: Nullable<PolicyResource>): NullableResultPromise<IUserPolicy>;
    /**
     * Map a user (group) policy instance to a policy resource.
     * @param client - An instance of an extended Content Hub client
     * @param policy - A user policy or user group policy instance
     * @returns A policy resource.
     */
    static mapToResourceAsync(client: IExtendedContentHubClient, policy: Nullable<IPolicy>): NullableResultPromise<PolicyResource>;
}
