import * as pulumi from '@pulumi/pulumi';
import * as grafana from '@pulumiverse/grafana';
import type { GrafanaDashboardBuilder } from './dashboards/builder';
import { GrafanaConnection } from './connections';
export declare namespace Grafana {
    type ServiceAccountTokenRotation = {
        secondsToLive: number;
        earlyRotationWindowSeconds: number;
    };
    type AccessPolicyTokenRotation = {
        expireAfter: string;
        earlyRotationWindow: string;
    };
    type PluginArgs = {
        name: string;
        slug: string;
        version?: string;
    };
    type Args = {
        stackSlug: string;
        connectionBuilders: GrafanaConnection.CreateConnection[];
        dashboardBuilders: GrafanaDashboardBuilder.CreateDashboard[];
        folderName?: string;
        scopes?: string[];
        plugins?: PluginArgs[];
        serviceAccountTokenRotation?: ServiceAccountTokenRotation;
        accessPolicyTokenRotation?: AccessPolicyTokenRotation;
    };
}
/**
 * This component requires a grafana cloud access policy token to be created and set
 * as `GRAFANA_CLOUD_ACCESS_POLICY_TOKEN` with the following scopes:
 * accesspolicies:read, accesspolicies:write, accesspolicies:delete, stacks:read, stack-service-accounts:write
 */
export declare class Grafana extends pulumi.ComponentResource {
    readonly name: string;
    readonly stack: pulumi.Output<grafana.cloud.GetStackResult>;
    readonly accessPolicy: grafana.cloud.AccessPolicy;
    readonly accessPolicyToken: grafana.cloud.AccessPolicyRotatingToken;
    readonly serviceAccount: grafana.cloud.StackServiceAccount;
    readonly serviceAccountToken: grafana.cloud.StackServiceAccountRotatingToken;
    readonly provider: grafana.Provider;
    readonly plugins?: grafana.cloud.PluginInstallation[];
    readonly connections: GrafanaConnection[];
    readonly folder: grafana.oss.Folder;
    readonly dashboards: grafana.oss.Dashboard[];
    constructor(name: string, args: Grafana.Args, opts?: pulumi.ComponentResourceOptions);
    static getStackSlug(grafanaUrl: string): string;
    private createAccessPolicy;
    private createAccessPolicyToken;
    private createServiceAccount;
    private createServiceAccountToken;
    private createFolder;
    private createPlugin;
    private createProvider;
}
//# sourceMappingURL=grafana.d.ts.map