import { Policy, OptimizedPolicy, OptimizedPolicyRestrictions } from "../../types/index"; import { Role } from "./role"; import { KuzzleRequest } from "../../../index"; /** @internal */ type InternalProfilePolicy = { role: Role; restrictedTo: OptimizedPolicyRestrictions; }; /** * @class Profile */ export declare class Profile { _id: string; policies: Policy[]; optimizedPolicies: OptimizedPolicy[]; rateLimit: number; constructor(); /** * @param {Kuzzle} kuzzle * * @returns {Promise} */ getPolicies(): Promise; /** * @param {Request} request * @returns {Promise} */ getAllowedPolicies(request: KuzzleRequest): Promise; /** * @param {Request} request * @returns {Promise} */ isActionAllowed(request: KuzzleRequest): Promise; /** * Validates the Profile format * * @param {Object} [options] * @param {boolean} [options.strict] - If true, only allows resctrictions on * existing indexes/collections * @returns {Promise} */ validateDefinition({ strict }?: { strict?: boolean; }): Promise; /** * Resolves an array of rights related to the profile's roles. * * @returns {Promise} */ getRights(): Promise<{}>; static _hash(): boolean; validateRateLimit(): void; } export {};