import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * Provides information about Linode Domains that match a set of filters.
 * For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-domains).
 *
 * ## Example Usage
 *
 * Get information about all Linode Cloud Domains with a specific tag:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as linode from "@pulumi/linode";
 *
 * const specific = linode.getDomains({
 *     filters: [{
 *         name: "tags",
 *         values: ["test-tag"],
 *     }],
 * });
 * export const domain = specific.then(specific => specific.domains?.[0]?.domain);
 * ```
 *
 * ## Filterable Fields
 *
 * * `group`
 *
 * * `tags`
 *
 * * `domain`
 *
 * * `type`
 *
 * * `status`
 *
 * * `description`
 *
 * * `masterIps`
 *
 * * `axfrIps`
 *
 * * `ttlSec`
 *
 * * `retrySec`
 *
 * * `expireSec`
 *
 * * `refreshSec`
 *
 * * `soaEmail`
 */
export declare function getDomains(args?: GetDomainsArgs, opts?: pulumi.InvokeOptions): Promise<GetDomainsResult>;
/**
 * A collection of arguments for invoking getDomains.
 */
export interface GetDomainsArgs {
    domains?: inputs.GetDomainsDomain[];
    filters?: inputs.GetDomainsFilter[];
    /**
     * The order in which results should be returned. (`asc`, `desc`; default `asc`)
     */
    order?: string;
    /**
     * The attribute to order the results by. See the Filterable Fields section for a list of valid fields.
     */
    orderBy?: string;
}
/**
 * A collection of values returned by getDomains.
 */
export interface GetDomainsResult {
    readonly domains?: outputs.GetDomainsDomain[];
    readonly filters?: outputs.GetDomainsFilter[];
    /**
     * The unique ID of this Domain.
     */
    readonly id: string;
    readonly order?: string;
    readonly orderBy?: string;
}
/**
 * Provides information about Linode Domains that match a set of filters.
 * For more information, see the [Linode APIv4 docs](https://techdocs.akamai.com/linode-api/reference/get-domains).
 *
 * ## Example Usage
 *
 * Get information about all Linode Cloud Domains with a specific tag:
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as linode from "@pulumi/linode";
 *
 * const specific = linode.getDomains({
 *     filters: [{
 *         name: "tags",
 *         values: ["test-tag"],
 *     }],
 * });
 * export const domain = specific.then(specific => specific.domains?.[0]?.domain);
 * ```
 *
 * ## Filterable Fields
 *
 * * `group`
 *
 * * `tags`
 *
 * * `domain`
 *
 * * `type`
 *
 * * `status`
 *
 * * `description`
 *
 * * `masterIps`
 *
 * * `axfrIps`
 *
 * * `ttlSec`
 *
 * * `retrySec`
 *
 * * `expireSec`
 *
 * * `refreshSec`
 *
 * * `soaEmail`
 */
export declare function getDomainsOutput(args?: GetDomainsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetDomainsResult>;
/**
 * A collection of arguments for invoking getDomains.
 */
export interface GetDomainsOutputArgs {
    domains?: pulumi.Input<pulumi.Input<inputs.GetDomainsDomainArgs>[]>;
    filters?: pulumi.Input<pulumi.Input<inputs.GetDomainsFilterArgs>[]>;
    /**
     * The order in which results should be returned. (`asc`, `desc`; default `asc`)
     */
    order?: pulumi.Input<string>;
    /**
     * The attribute to order the results by. See the Filterable Fields section for a list of valid fields.
     */
    orderBy?: pulumi.Input<string>;
}
