import { DynamicAuthorizationService, IdentityPermission, AuthenticatedUser } from '@aws/workbench-core-authorization';
export default class AuthorizationSetup {
    private _authService;
    private _constants;
    constructor(authService: DynamicAuthorizationService, constants: {
        ROOT_USER_EMAIL: string;
    });
    run(): Promise<void>;
    /**
     * Creates a new group
     * @param groupName - Name of Group to create
     * @param groupDescription - Group description
     */
    createGroupIfNotExist(groupName: string, groupDescription: string, user: AuthenticatedUser): Promise<void>;
    /**
     * Assigns user to group
     * @param userId - Group description
     * @param groupName - Name of the Group to assign
     */
    assignUserToGroup(userId: string, groupName: string, user: AuthenticatedUser): Promise<void>;
    /**
     * Creates set of permissions
     * @param permissions - Permissions to create
     */
    createIdentityPermissions(permissions: IdentityPermission[], user: AuthenticatedUser): Promise<void>;
    /**
     * Map list of actions to list of {@link IdentityPermission}
     * @param identityId - group id
     * @param subjectType - subject, e.g. Project, CostCenter, etc.
     * @param actions - list of actions allowed for group
     * @returns list of {@link IdentityPermission}
     */
    private _mapActions;
    private _purgeGroupPermissions;
}
//# sourceMappingURL=authorizationSetup.d.ts.map