Version: 0.0.10.1.00.1.10.2.00.2.10.2.20.3.00.3.10.3.20.3.30.4.00.5.00.5.10.6.00.6.10.6.20.6.30.7.00.7.10.7.20.7.30.8.20.9.00.9.10.9.20.9.30.9.40.9.50.10.0-rc.10.10.00.10.10.10.20.10.30.11.00.12.01.0.01.0.11.1.01.1.11.2.01.2.11.3.01.3.11.4.02.0.02.0.12.0.22.0.32.0.4-types.12.0.42.0.52.1.02.2.03.0.0-beta.23.0.03.0.23.0.33.1.03.1.13.2.03.2.13.2.23.2.33.2.43.3.03.4.03.5.03.6.03.7.03.7.13.8.03.8.13.9.03.10.03.10.13.10.23.11.03.12.03.12.13.12.23.13.03.14.03.14.13.15.03.16.03.17.13.17.23.17.34.0.0-rc.04.0.1-rc.04.0.1-rc.14.0.24.0.35.0.05.0.15.0.25.0.35.0.45.0.55.1.05.1.15.1.25.1.35.1.45.1.55.1.65.1.75.1.85.2.0-alpha.15.2.0-alpha.25.2.05.3.0-alpha.15.3.05.3.1-alpha.15.4.0-pre.15.4.05.4.15.4.2-pre.15.4.26.0.0-pre.16.0.0-pre.26.0.0-pre.3
import { ISimpleType, Primitives } from "../../internal";
/**
* `types.literal` - The literal type will return a type that will match only the exact given type.
* The given value must be a primitive, in order to be serialized to a snapshot correctly.
* You can use literal to match exact strings for example the exact male or female string.
*
* Example:
* ```ts
* const Person = types.model({
* name: types.string,
* gender: types.union(types.literal('male'), types.literal('female'))
* })
* ```
* @param value The value to use in the strict equal check
* @returns
*/
export declare function literal<S extends Primitives>(value: S): ISimpleType<S>;
* Returns if a given value represents a literal type.
* @param type
export declare function isLiteralType<IT extends ISimpleType<any>>(type: IT): type is IT;