import { Unary } from '../../function/function/unary'; import { Enum, Member } from '../../object/enum/enum'; /** * An enum object with a list of available bitmask flags. * * @since v0.6.0 */ export type Flags = Enum; /** * A bitmask flag defined in a given {@link Flags} enum. * * @since v0.6.0 */ export type Flag = T[keyof T] & number; /** * A bitmask consisting of one or more {@link Flags}. * * @see https://en.wikipedia.org/wiki/Mask_(computing) * * @since v0.6.0 */ export type Bitmask = T extends Flags ? Flag : number; /** * Creates a bitmask with all given flags raised. * * @since v0.6.0 */ export declare function bitmask(flags: Bitmask[]): Bitmask; /** * Returns flags that are raised on the given bitmask. * * @since v0.6.0 */ export declare function raisedFlags(type: object, bitmask: Bitmask): Member[]; /** * Creates a function that returns `true` if a given `flag` is raised in the input bitmask. * * @see isFlagOn() * * @since v0.6.0 */ export declare function hasFlagOn(flag: Bitmask): Unary, boolean>; /** * Returns `true` if a given flag is raised on a bitmask. * * @since v0.6.0 */ export declare function isFlagOn(bitmask: Bitmask, flag: Bitmask): boolean;