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;
