import type { Construct } from 'constructs';
import type { BaseNamespaceProps, INamespace } from './namespace';
import { NamespaceType } from './namespace';
import type { DnsServiceProps } from './service';
import { Service } from './service';
import { Resource } from '../../core';
import type { IPublicDnsNamespaceRef, PublicDnsNamespaceReference } from '../../interfaces/generated/aws-servicediscovery-interfaces.generated';
export interface PublicDnsNamespaceProps extends BaseNamespaceProps {
}
export interface IPublicDnsNamespace extends INamespace, IPublicDnsNamespaceRef {
}
export interface PublicDnsNamespaceAttributes {
    /**
     * A name for the Namespace.
     */
    readonly namespaceName: string;
    /**
     * Namespace Id for the Namespace.
     */
    readonly namespaceId: string;
    /**
     * Namespace ARN for the Namespace.
     */
    readonly namespaceArn: string;
}
/**
 * Define a Public DNS Namespace
 */
export declare class PublicDnsNamespace extends Resource implements IPublicDnsNamespace {
    /** Uniquely identifies this class. */
    static readonly PROPERTY_INJECTION_ID: string;
    static fromPublicDnsNamespaceAttributes(scope: Construct, id: string, attrs: PublicDnsNamespaceAttributes): IPublicDnsNamespace;
    /**
     * A name for the namespace.
     */
    readonly namespaceName: string;
    /**
     * Namespace Id for the namespace.
     */
    readonly namespaceId: string;
    /**
     * Namespace Arn for the namespace.
     */
    readonly namespaceArn: string;
    /**
     * ID of hosted zone created by namespace
     */
    readonly namespaceHostedZoneId: string;
    /**
     * Type of the namespace.
     */
    readonly type: NamespaceType;
    constructor(scope: Construct, id: string, props: PublicDnsNamespaceProps);
    /** @attribute */
    get publicDnsNamespaceArn(): string;
    /** @attribute */
    get publicDnsNamespaceName(): string;
    /** @attribute */
    get publicDnsNamespaceId(): string;
    get publicDnsNamespaceRef(): PublicDnsNamespaceReference;
    /**
     * Creates a service within the namespace
     */
    createService(id: string, props?: DnsServiceProps): Service;
}
