@altostra/core
Version:
Core library for shared types and logic
17 lines (16 loc) • 1.15 kB
TypeScript
import type { ReservedUserConfigurationKey, UserConfiguration, UserConfigurationType } from "./UserConfiguration";
import type { ReservedVPCKey, VPCConfiguration, VPCConfigurationType } from "./VPCConfiguration";
export * from "./UserConfiguration";
export * from "./VPCConfiguration";
export declare type ConfigurationType = UserConfigurationType | VPCConfigurationType;
declare type ConfigurationTypeMap = {
[K in UserConfigurationType]: UserConfiguration;
} & {
[K in VPCConfigurationType]: VPCConfiguration;
};
export declare type ConfigurationByType<T extends ConfigurationType> = ConfigurationTypeMap[T];
export declare type Configuration = ConfigurationByType<ConfigurationType>;
export declare const isConfiguration: import("@altostra/type-validations/lib/taggedUnionOf").TaggedUnionValidation<UserConfiguration | VPCConfiguration, "type", "vpc" | "user">;
export declare const isConfigurationType: import("@altostra/type-validations").TypeValidation<ConfigurationType>;
export declare type ReservedKey = ReservedUserConfigurationKey | ReservedVPCKey;
export declare function isReservedKey(value: unknown): value is ReservedKey;