import type { AccessControlPoliciesResult, AccessControlPolicy, AccessControlPolicyActiveUpdate, AccessControlTestResult, PolicySimulationResponse, PolicySimulationByUsersParams } from '@mattermost/types/access_control'; import type { ChannelSearchOpts, ChannelsWithTotalCount } from '@mattermost/types/channels'; import type { ActionFuncAsync } from 'mattermost-redux/types/actions'; export declare function getAccessControlPolicy(id: string, channelId?: string, teamId?: string): ActionFuncAsync; export declare function createAccessControlPolicy(policy: AccessControlPolicy, teamId?: string): ActionFuncAsync; export declare function deleteAccessControlPolicy(id: string, teamId?: string): ActionFuncAsync; export declare function searchAccessControlPolicies(term: string, type: string, after: string, limit: number): ActionFuncAsync; export declare function searchPermissionPolicies(term: string, after: string, limit: number): ActionFuncAsync; export declare function searchTeamAccessControlPolicies(teamId: string, term: string, type: string, after: string, limit: number): ActionFuncAsync; export declare function searchAccessControlPolicyChannels(id: string, term: string, opts: ChannelSearchOpts, teamId?: string): ActionFuncAsync; export declare function assignChannelsToAccessControlPolicy(policyId: string, channelIds: string[], teamId?: string): ActionFuncAsync; export declare function unassignChannelsFromAccessControlPolicy(policyId: string, channelIds: string[], teamId?: string): ActionFuncAsync; export declare function assignTeamsToAccessControlPolicy(policyId: string, teamIds: string[]): ActionFuncAsync; export declare function unassignTeamsFromAccessControlPolicy(policyId: string, teamIds: string[]): ActionFuncAsync; export declare function getTeamAccessControlPolicy(teamId: string): ActionFuncAsync<{ policy: AccessControlPolicy | null; enforced: boolean; }, import("@mattermost/types/store").GlobalState, import("redux").AnyAction>; export declare function getAccessControlFields(after: string, limit: number, channelId?: string, teamId?: string): ActionFuncAsync; export declare function searchUsersForExpression(expression: string, term: string, after: string, limit: number, channelId?: string, teamId?: string): ActionFuncAsync; /** * Run the dual-lane PDP simulation against a draft policy for an explicit * set of users (with optional per-user session attribute overrides) and * return per-user, per-action ALLOW/DENY decisions with blame attribution. * Backs the picker-based "Simulate access" modal in the System Console * and Channel Settings so authors can see how a draft interacts with * persisted higher-scoped policies before saving. * * The redux action only forwards profiles into the user store on success; * decisions and blame metadata stay on the returned data and are consumed * directly by the modal. */ export declare function simulatePolicyForUsers(params: PolicySimulationByUsersParams): ActionFuncAsync; export declare function getVisualAST(expression: string, channelId?: string, teamId?: string): ActionFuncAsync; export declare function validateExpressionAgainstRequester(expression: string, channelId?: string, teamId?: string): ActionFuncAsync<{ requester_matches: boolean; }>; export declare function createAccessControlSyncJob(jobData: { policy_id?: string; team_id?: string; }): ActionFuncAsync; export declare function updateAccessControlPoliciesActive(states: AccessControlPolicyActiveUpdate[], teamId?: string): ActionFuncAsync;