import type { Block, BlockType, BlockTypeIcon, BlockTypeIconDescriptor, BlockAttribute } from '../types'; /** * Determines whether the block's attributes are equal to the default attributes * which means the block is unmodified. * * @param block Block Object. * @param role Optional role to filter attributes for modification check. * * @return Whether the block is an unmodified block. */ export declare function isUnmodifiedBlock(block: Block, role?: string): boolean; /** * Determines whether the block is a default block and its attributes are equal * to the default attributes which means the block is unmodified. * * @param block Block Object * @param role Optional role to filter attributes for modification check. * * @return Whether the block is an unmodified default block. */ export declare function isUnmodifiedDefaultBlock(block: Block, role?: string): boolean; /** * Function that checks if the parameter is a valid icon. * * @param icon Parameter to be checked. * * @return True if the parameter is a valid icon and false otherwise. */ export declare function isValidIcon(icon: unknown): boolean; /** * Function that receives an icon as set by the blocks during the registration * and returns a new icon object that is normalized so we can rely on just on possible icon structure * in the codebase. * * @param icon Render behavior of a block type icon; * one of a Dashicon slug, an element, or a component. * * @return Object describing the icon. */ export declare function normalizeIconObject(icon: BlockTypeIcon | undefined): BlockTypeIconDescriptor; /** * Normalizes block type passed as param. When string is passed then * it converts it to the matching block type object. * It passes the original object otherwise. * * @param blockTypeOrName Block type or name. * * @return Block type. */ export declare function normalizeBlockType(blockTypeOrName: string | BlockType): BlockType | undefined; /** * Get the label for the block, usually this is either the block title, * or the value of the block's `label` function when that's specified. * * @param blockType The block type. * @param attributes The values of the block's attributes. * @param context The intended use for the label. * * @return The block label. */ export declare function getBlockLabel(blockType: BlockType, attributes: Record, context?: string): string; /** * Get a label for the block for use by screenreaders, this is more descriptive * than the visual label and includes the block title and the value of the * `getLabel` function if it's specified. * * @param blockType The block type. * @param attributes The values of the block's attributes. * @param position The position of the block in the block list. * @param direction The direction of the block layout. * * @return The block label. */ export declare function getAccessibleBlockLabel(blockType: BlockType | undefined | null, attributes: Record, position?: number, direction?: string): string; export declare function getDefault(attributeSchema: BlockAttribute): unknown; /** * Check if a block is registered. * * @param name The block's name. * * @return Whether the block is registered. */ export declare function isBlockRegistered(name: string): boolean; /** * Ensure attributes contains only values defined by block type, and merge * default values for missing attributes. * * @param name The block's name. * @param attributes The block's attributes. * @return The sanitized attributes. */ export declare function __experimentalSanitizeBlockAttributes(name: string, attributes: Record): Record; /** * Filter block attributes by `role` and return their names. * * @param name Block attribute's name. * @param role The role of a block attribute. * * @return The attribute names that have the provided role. */ export declare function getBlockAttributesNamesByRole(name: string, role?: string): string[]; export declare const __experimentalGetBlockAttributesNamesByRole: (...args: Parameters) => string[]; /** * Checks if a block is a content block by examining its attributes. * A block is considered a content block if it has at least one attribute * with a role of 'content'. * * @param name The name of the block to check. * @return Whether the block is a content block. */ export declare function isContentBlock(name: string): boolean; /** * Return a new object with the specified keys omitted. * * @param object Original object. * @param keys Keys to be omitted. * * @return Object with omitted keys. */ export declare function omit>(object: T, keys: string | string[]): T; //# sourceMappingURL=utils.d.ts.map