import { FederationEnforcement } from '../../api/cloud/EnvFederationEnforcementApi';
import { State } from '../../shared/State';
export type EnvFederationEnforcement = {
    /**
     * Read federation enforcement configuration
     * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object
     */
    readFederationEnforcement(): Promise<FederationEnforcement>;
    /**
     * Update federation enforcement configuration
     * @param {FederationEnforcement} config FederationEnforcement object
     * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object.
     */
    updateFederationEnforcement(config: FederationEnforcement): Promise<FederationEnforcement>;
    /**
     * Enforce federation for a group of admins
     * @param {EnforcementGroup} group Group of admins to enforce federation for
     * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object.
     */
    enforceFederationFor(group: EnforcementGroup): Promise<FederationEnforcement>;
};
declare const _default: (state: State) => EnvFederationEnforcement;
export default _default;
/**
 * Read federation enforcement configuration
 * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object
 */
export declare function readFederationEnforcement({ state, }: {
    state: State;
}): Promise<FederationEnforcement>;
/**
 * Update federation enforcement configuration
 * @param {Object} params Parameters object.
 * @param {FederationEnforcement} params.config FederationEnforcement object
 * @param {State} params.state State object.
 * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object.
 */
export declare function updateFederationEnforcement({ config, state, }: {
    config: FederationEnforcement;
    state: State;
}): Promise<FederationEnforcement>;
export declare enum EnforcementGroup {
    Nobody = "none",
    TenantAdmins = "non-global",
    AllAdmins = "all"
}
/**
 * Update federation enforcement configuration
 * @param {Object} params Parameters object.
 * @param {EnforcementGroup} params.group Group of admins to enforce federation for
 * @param {State} params.state State object.
 * @returns {Promise<FederationEnforcement>} a promise that resolves to a FederationEnforcement object.
 */
export declare function enforceFederationFor({ group, state, }: {
    group: EnforcementGroup;
    state: State;
}): Promise<FederationEnforcement>;
//# sourceMappingURL=EnvFederationEnforcementOps.d.ts.map