import type { ClientConfig, FeatureFlags, ClientLicense } from '@mattermost/types/config'; import type { UserPropertyField } from '@mattermost/types/properties'; import type { GlobalState } from '@mattermost/types/store'; import type { CWSAvailabilityState } from '../../reducers/entities/general'; export declare function getConfig(state: GlobalState): Partial; /** * Safely get value of a specific or known FeatureFlag */ export declare function getFeatureFlagValue(state: GlobalState, key: keyof FeatureFlags): string | undefined; export declare function isCustomProfileAttributesEnabled(state: GlobalState): boolean; export declare function isPermissionPoliciesEnabled(state: GlobalState): boolean; /** * Whether channel-scope policies may carry permission-rule actions * (file upload/download) — i.e. whether the Channel Settings → * Permissions Policy tab should be exposed. * * The sub-flag `ChannelPermissionPolicies` AND the umbrella * `PermissionPolicies` must BOTH be on. Mirrors the server-side * `FeatureFlags.IsChannelPermissionPoliciesEnabled()` helper so the * dependency direction is consistent across the wire. Centralizing * the check here means every consumer (settings tab, save buttons, * etc.) automatically picks up future changes to the dependency. */ export declare function isChannelPermissionPoliciesEnabled(state: GlobalState): boolean; /** * Whether the "Simulate access" preview UX should be exposed * (System Console policy editor + Channel Settings tab). * * The sub-flag `PolicySimulation` AND the umbrella * `PermissionPolicies` must BOTH be on. Mirrors the server-side * `FeatureFlags.IsPolicySimulationEnabled()` helper. The backing * `/cel/simulate_users` endpoint returns 501 when this is off, so * hiding the entry points here also prevents users from seeing an * "Evaluating…" button that can never resolve. */ export declare function isPolicySimulationEnabled(state: GlobalState): boolean; export type PasswordConfig = { minimumLength: number; requireLowercase: boolean; requireUppercase: boolean; requireNumber: boolean; requireSymbol: boolean; }; export declare const getPasswordConfig: (state: GlobalState) => PasswordConfig; export declare function getLicense(state: GlobalState): ClientLicense; export declare function isFreeEdition(state: GlobalState): boolean; export declare const isCloudLicense: (state: GlobalState) => boolean; export declare function isCompatibleWithJoinViewTeamPermissions(state: GlobalState): boolean; export declare const canUploadFilesOnMobile: (a: GlobalState) => boolean; export declare const canDownloadFilesOnMobile: (a: GlobalState) => boolean; export declare const getAutolinkedUrlSchemes: (a: GlobalState) => string[]; export declare const getManagedResourcePaths: (state: GlobalState) => string[]; export declare const getServerVersion: (state: GlobalState) => string; export declare function getFirstAdminVisitMarketplaceStatus(state: GlobalState): boolean; export declare function getFirstAdminSetupComplete(state: GlobalState): boolean; export declare function isPerformanceDebuggingEnabled(state: GlobalState): boolean; export declare const isMarketplaceEnabled: (state: GlobalState) => boolean; export declare const getUsersStatusAndProfileFetchingPollInterval: (state: GlobalState) => number | null; export declare function developerModeEnabled(state: GlobalState): boolean; export declare function testingEnabled(state: GlobalState): boolean; export declare const getCustomProfileAttributes: (state: GlobalState) => UserPropertyField[]; export declare function getIsCrossTeamSearchEnabled(state: GlobalState): boolean; export declare function getCWSAvailability(state: GlobalState): CWSAvailabilityState;