import { State } from '../shared/State';
import { type IdObjectSkeletonInterface, type NoIdObjectSkeletonInterface } from './ApiTypes';
export type PolicyConditionType = 'Script' | 'AMIdentityMembership' | 'IPv6' | 'IPv4' | 'SimpleTime' | 'LEAuthLevel' | 'LDAPFilter' | 'AuthScheme' | 'Session' | 'AND' | 'AuthenticateToRealm' | 'ResourceEnvIP' | 'Policy' | 'OAuth2Scope' | 'SessionProperty' | 'OR' | 'Transaction' | 'NOT' | 'AuthLevel' | 'AuthenticateToService';
export type PolicyCondition = NoIdObjectSkeletonInterface & {
    type: PolicyConditionType;
    condition?: PolicyCondition;
    conditions?: PolicyCondition[];
};
export type PolicySkeleton = IdObjectSkeletonInterface & {
    name: string;
    applicationName: string;
    condition?: PolicyCondition;
    resourceTypeUuid: string;
};
/**
 * Get all policies
 * @returns {Promise} a promise that resolves to an object containing an array of policy objects
 */
export declare function getPolicies({ state }: {
    state: State;
}): Promise<any>;
/**
 * Get policies by policy set
 * @param {string} policySetId policy set id/name
 * @returns {Promise} a promise that resolves to an object containing an array of policy objects
 */
export declare function getPoliciesByPolicySet({ policySetId, state, }: {
    policySetId: string;
    state: State;
}): Promise<any>;
/**
 * Get policy
 * @param {String} policyId policy id/name
 * @returns {Promise<PolicySkeleton>} a promise that resolves to a policy object
 */
export declare function getPolicy({ policyId, state, }: {
    policyId: string;
    state: State;
}): Promise<PolicySkeleton>;
/**
 * Put policy
 * @param {String} policyId policy id/name
 * @param {Object} policyData policy object
 * @returns {Promise} a promise that resolves to a policy object
 */
export declare function putPolicy({ policyId, policyData, state, }: {
    policyId: string;
    policyData: PolicySkeleton;
    state: State;
}): Promise<any>;
/**
 * Delete policy
 * @param {Object} policyId policy id/name
 * @returns {Promise} a promise that resolves to a policy object
 */
export declare function deletePolicy({ policyId, state, }: {
    policyId: string;
    state: State;
}): Promise<any>;
//# sourceMappingURL=PoliciesApi.d.ts.map