import type { FeaturesState, FeaturesAction, FeaturePermission } from '@shopify/app-bridge-core/client'; import { AnyAction, Group } from '@shopify/app-bridge-core/actions/types'; import { LegacyUpdateAction, UpdateAction } from './actions'; export declare const defaultFeaturesStore: FeaturesState; /** * Map an action enum to the given permission * @public * @param actions - the actions enum * @param value - the permission to set * @returns an object with keys mapped to the actions and value set to the given permission */ export declare function setFeature(actions: object | object[], value?: boolean | FeaturePermission): FeaturesAction; /** * Returns the updated feature state * @param state - the current state * @param action - the update action with partial features in the payload * @internal * */ export default function featuresReducer(state: FeaturesState | undefined, action: UpdateAction | LegacyUpdateAction | AnyAction): FeaturesState; /** * Returns the updated feature state * @param state - the current state * @param action - the update action with partial features in the payload * @internal * */ export declare function asyncFeaturesReducer(state: FeaturesState | undefined, action: UpdateAction | LegacyUpdateAction | AnyAction): FeaturesState; /** * Returns the features state with the provided group(s) enabled * The permission is set for both Main and Modal context * according to the default feature permission rules * @argument keys - the group(s) to enable the feature permission * @public * */ export declare function setFeaturesAvailable(...features: Group[]): FeaturesState;