import type { DNSLabel } from "../../common/CustomTypes/DNSName";
import type { NonEmptyString } from "../../common/CustomTypes/NonEmptyString";
import type { SecurityGroupId } from "../../common/CustomTypes/SecurityGroupId";
import type { SubnetId } from "../../common/CustomTypes/SubnetId";
import type { ConnectionBase } from "./Common";
export declare type DomainConnectionType = 'connection.domain';
export interface DomainConnection extends ConnectionBase {
    type: DomainConnectionType;
    hostname: DNSLabel;
    certificate: Certificate;
}
/**
 * A certificate which is already stored in the cloud.
 */
export interface StoredCertificate {
    type: 'cert.stored';
    /**
   * Certificate resource name such as an ARN
   */
    uri: string;
}
export declare type Certificate = StoredCertificate;
export declare const isCertificate: import("@altostra/type-validations").ObjectOfTypeValidation<StoredCertificate>;
export declare const isDomainConnection: import("@altostra/type-validations").ObjectOfTypeValidation<DomainConnection>;
export declare type DomainServiceConnectionType = 'connection.domain.service';
export interface DomainServiceConnection extends ConnectionBase {
    type: DomainServiceConnectionType;
    certificate: Certificate;
    hostname: DNSLabel;
    vpc: {
        securityGroupIds: SecurityGroupId[];
        subnetIds: SubnetId[];
    };
    pathRules: NonEmptyString[];
}
export declare const isDomainServiceConnection: import("@altostra/type-validations").ObjectOfTypeValidation<DomainServiceConnection>;
