import ReportingService from '../services/reportingService';
import { components } from '../types/api';
import { Template } from '../types/Templates';
export declare const getFilter: (fields: components["schemas"]["FieldDefinition"][], fieldId: string) => components["schemas"]["FilterDefinition"] | undefined;
export declare const getCurrentVariantDefinition: (definitions: components["schemas"]["ReportDefinitionSummary"][], reportId: string, variantId: string) => components["schemas"]["VariantDefinition"] | undefined;
export declare const getFieldDisplayName: (fields: components["schemas"]["FieldDefinition"][] | components["schemas"]["SummaryField"][], fieldId: string) => string | undefined;
export declare const getField: (fields: components["schemas"]["FieldDefinition"][], fieldId: string) => {
    name: string;
    display: string;
    wordWrap?: "none" | "normal" | "break-words";
    filter?: components["schemas"]["FilterDefinition"];
    sortable: boolean;
    defaultsort: boolean;
    sortDirection?: "asc" | "desc";
    type: "boolean" | "date" | "double" | "HTML" | "long" | "string" | "time";
    mandatory: boolean;
    visible: boolean;
    calculated: boolean;
    header: boolean;
} | undefined;
export declare const getFields: (definition: components["schemas"]["SingleVariantReportDefinition"]) => components["schemas"]["FieldDefinition"][];
export declare const getTemplate: (definition: components["schemas"]["SingleVariantReportDefinition"]) => Template;
export declare const getFilters: (fields: components["schemas"]["FieldDefinition"][]) => components["schemas"]["FilterDefinition"][];
export declare const getFieldsByName: (names: string[], fields: components["schemas"]["FieldDefinition"][]) => components["schemas"]["FieldDefinition"][];
export declare const validateDefinition: (definition: components["schemas"]["SingleVariantReportDefinition"]) => {
    variant: {
        id: string;
        name: string;
        resourceName: string;
        description?: string;
        specification?: components["schemas"]["Specification"];
        classification?: string;
        printable?: boolean;
        summaries?: components["schemas"]["ReportSummary"][];
        interactive?: boolean;
        childVariants?: components["schemas"]["ChildVariantDefinition"][];
    };
    specification: {
        template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
        fields: components["schemas"]["FieldDefinition"][];
        sections: string[];
    };
};
export declare const validateVariant: (variant: components["schemas"]["VariantDefinition"]) => {
    variant: {
        id: string;
        name: string;
        resourceName: string;
        description?: string;
        specification?: components["schemas"]["Specification"];
        classification?: string;
        printable?: boolean;
        summaries?: components["schemas"]["ReportSummary"][];
        interactive?: boolean;
        childVariants?: components["schemas"]["ChildVariantDefinition"][];
    };
    specification: {
        template: "list" | "list-section" | "list-tab" | "summary" | "summary-section" | "parent-child" | "parent-child-section" | "row-section" | "row-section-child";
        fields: components["schemas"]["FieldDefinition"][];
        sections: string[];
    };
};
export declare const hasInteractiveFilters: (fields: components["schemas"]["FieldDefinition"][]) => boolean;
export declare const getReportSummary: (reportId: string, reportingService: ReportingService, token: string, definitionPath: string) => Promise<{
    id: string;
    name: string;
    description?: string;
    variants: components["schemas"]["VariantDefinitionSummary"][];
    dashboards?: components["schemas"]["DashboardDefinitionSummary"][];
    authorised: boolean;
}>;
declare const _default: {
    getCurrentVariantDefinition: (definitions: components["schemas"]["ReportDefinitionSummary"][], reportId: string, variantId: string) => components["schemas"]["VariantDefinition"] | undefined;
    getFieldDisplayName: (fields: components["schemas"]["FieldDefinition"][] | components["schemas"]["SummaryField"][], fieldId: string) => string | undefined;
    getField: (fields: components["schemas"]["FieldDefinition"][], fieldId: string) => {
        name: string;
        display: string;
        wordWrap?: "none" | "normal" | "break-words";
        filter?: components["schemas"]["FilterDefinition"];
        sortable: boolean;
        defaultsort: boolean;
        sortDirection?: "asc" | "desc";
        type: "boolean" | "date" | "double" | "HTML" | "long" | "string" | "time";
        mandatory: boolean;
        visible: boolean;
        calculated: boolean;
        header: boolean;
    } | undefined;
    getFields: (definition: components["schemas"]["SingleVariantReportDefinition"]) => components["schemas"]["FieldDefinition"][];
    getTemplate: (definition: components["schemas"]["SingleVariantReportDefinition"]) => Template;
    getFilter: (fields: components["schemas"]["FieldDefinition"][], fieldId: string) => components["schemas"]["FilterDefinition"] | undefined;
    getFilters: (fields: components["schemas"]["FieldDefinition"][]) => components["schemas"]["FilterDefinition"][];
    getReportSummary: (reportId: string, reportingService: ReportingService, token: string, definitionPath: string) => Promise<{
        id: string;
        name: string;
        description?: string;
        variants: components["schemas"]["VariantDefinitionSummary"][];
        dashboards?: components["schemas"]["DashboardDefinitionSummary"][];
        authorised: boolean;
    }>;
    hasInteractiveFilters: (fields: components["schemas"]["FieldDefinition"][]) => boolean;
};
export default _default;
