import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This data source provides the list of Categories in Oracle Cloud Infrastructure Marketplace service.
 *
 * Gets the list of all the categories for listings published to Oracle Cloud Infrastructure Marketplace. Categories apply
 * to the software product provided by the listing.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testCategories = oci.marketplace.getCategories({
 *     compartmentId: compartmentId,
 * });
 * ```
 */
export declare function getCategories(args?: GetCategoriesArgs, opts?: pulumi.InvokeOptions): Promise<GetCategoriesResult>;
/**
 * A collection of arguments for invoking getCategories.
 */
export interface GetCategoriesArgs {
    /**
     * The unique identifier for the compartment.
     */
    compartmentId?: string;
    filters?: inputs.Marketplace.GetCategoriesFilter[];
}
/**
 * A collection of values returned by getCategories.
 */
export interface GetCategoriesResult {
    /**
     * The list of categories.
     */
    readonly categories: outputs.Marketplace.GetCategoriesCategory[];
    readonly compartmentId?: string;
    readonly filters?: outputs.Marketplace.GetCategoriesFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
}
/**
 * This data source provides the list of Categories in Oracle Cloud Infrastructure Marketplace service.
 *
 * Gets the list of all the categories for listings published to Oracle Cloud Infrastructure Marketplace. Categories apply
 * to the software product provided by the listing.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testCategories = oci.marketplace.getCategories({
 *     compartmentId: compartmentId,
 * });
 * ```
 */
export declare function getCategoriesOutput(args?: GetCategoriesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetCategoriesResult>;
/**
 * A collection of arguments for invoking getCategories.
 */
export interface GetCategoriesOutputArgs {
    /**
     * The unique identifier for the compartment.
     */
    compartmentId?: pulumi.Input<string | undefined>;
    filters?: pulumi.Input<pulumi.Input<inputs.Marketplace.GetCategoriesFilterArgs>[] | undefined>;
}
//# sourceMappingURL=getCategories.d.ts.map