import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * The resource schema for AWSLogs QueryDefinition
 */
export declare class QueryDefinition extends pulumi.CustomResource {
    /**
     * Get an existing QueryDefinition resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): QueryDefinition;
    /**
     * Returns true if the given object is an instance of QueryDefinition.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is QueryDefinition;
    /**
     * Optionally define specific log groups as part of your query definition
     */
    readonly logGroupNames: pulumi.Output<string[] | undefined>;
    /**
     * A name for the saved query definition
     */
    readonly name: pulumi.Output<string>;
    /**
     * Use this parameter to include specific query parameters as part of your query definition. Query parameters are supported only for Logs Insights QL queries. Query parameters allow you to use placeholder variables in your query string that are substituted with values at execution time. Use the {{parameterName}} syntax in your query string to reference a parameter.
     */
    readonly parameters: pulumi.Output<outputs.logs.QueryDefinitionQueryParameter[] | undefined>;
    /**
     * Unique identifier of a query definition
     */
    readonly queryDefinitionId: pulumi.Output<string>;
    /**
     * Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.
     */
    readonly queryLanguage: pulumi.Output<enums.logs.QueryDefinitionQueryLanguage | undefined>;
    /**
     * The query string to use for this definition
     */
    readonly queryString: pulumi.Output<string>;
    /**
     * Create a QueryDefinition resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: QueryDefinitionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a QueryDefinition resource.
 */
export interface QueryDefinitionArgs {
    /**
     * Optionally define specific log groups as part of your query definition
     */
    logGroupNames?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A name for the saved query definition
     */
    name?: pulumi.Input<string>;
    /**
     * Use this parameter to include specific query parameters as part of your query definition. Query parameters are supported only for Logs Insights QL queries. Query parameters allow you to use placeholder variables in your query string that are substituted with values at execution time. Use the {{parameterName}} syntax in your query string to reference a parameter.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.logs.QueryDefinitionQueryParameterArgs>[]>;
    /**
     * Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.
     */
    queryLanguage?: pulumi.Input<enums.logs.QueryDefinitionQueryLanguage>;
    /**
     * The query string to use for this definition
     */
    queryString: pulumi.Input<string>;
}
