import type { Api, ApiType } from "./Api";
import type { ApiEndpoint, ApiEndpointType, ApiProxyEndpoint, ApiProxyEndpointType } from "./ApiEndpoint";
import type { ApiDomainName, ApiDomainNameType } from "./DomainName";
export * from "./Api";
export * from "./ApiEndpoint";
export * from "./DomainName";
export declare type ApiResourceType = ApiDomainNameType | ApiEndpointType | ApiProxyEndpointType | ApiType;
export declare type AnyApiEndpointType = ApiEndpointType | ApiProxyEndpointType;
export declare type ApiResource = Api | ApiDomainName | ApiEndpoint | ApiProxyEndpoint;
export declare type AnyApiEndpoint = ApiEndpoint | ApiProxyEndpoint;
export declare type ApiResourceByType = {
    [K in ApiDomainNameType]: ApiDomainName;
} & {
    [K in ApiEndpointType]: ApiEndpoint;
} & {
    [K in ApiProxyEndpointType]: ApiProxyEndpoint;
} & {
    [K in ApiType]: Api;
};
export declare const isApiResource: import("@altostra/type-validations/lib/taggedUnionOf").TaggedUnionValidation<Api | ApiDomainName | ApiEndpoint | ApiProxyEndpoint, "type", "resource.api" | "resource.api.domain-name" | "resource.api.endpoint" | "resource.api.proxy-endpoint">;
