import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { MJQueryEntity, MJQueryParameterEntity } from '@memberjunction/core-entities';
import * as i0 from "@angular/core";
interface QueryRunResult {
    QueryID: string;
    QueryName: string;
    Success: boolean;
    Results: string;
    ErrorMessage: string;
    RowCount: number;
    TotalRowCount: number;
    ExecutionTime: number;
    AppliedParameters?: string;
}
interface ParameterPair {
    name: string;
    value: string;
    type: string;
    defaultValue: string;
    description: string;
    isRequired: boolean;
}
export declare class QueryRunDialogComponent implements OnInit, OnChanges {
    private cdr;
    query: MJQueryEntity | null;
    parameters: MJQueryParameterEntity[];
    isVisible: boolean;
    isVisibleChange: EventEmitter<boolean>;
    onClose: EventEmitter<void>;
    isRunning: boolean;
    isLoadingParams: boolean;
    parameterPairs: ParameterPair[];
    parametersExpanded: boolean;
    resultsExpanded: boolean;
    paginationExpanded: boolean;
    runResult: QueryRunResult | null;
    resultColumns: any[];
    resultRows: any[];
    selectedRows: any[];
    maxRows: number | null;
    startRow: number;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private initializeParameters;
    getValueListOptions(valueList: string): Array<{
        text: string;
        value: string;
    }>;
    isParameterValid(param: ParameterPair): boolean;
    runQuery(isPaginationRequest?: boolean): Promise<void>;
    private processResults;
    private formatColumnTitle;
    private calculateColumnWidth;
    exportToCSV(): void;
    copyToClipboard(): Promise<void>;
    close(): void;
    getAppliedParametersCount(): number;
    hasInvalidParameters(): boolean;
    goToFirstPage(): void;
    goToPreviousPage(): void;
    goToNextPage(): void;
    goToLastPage(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<QueryRunDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<QueryRunDialogComponent, "mj-query-run-dialog", never, { "query": { "alias": "query"; "required": false; }; "parameters": { "alias": "parameters"; "required": false; }; "isVisible": { "alias": "isVisible"; "required": false; }; }, { "isVisibleChange": "isVisibleChange"; "onClose": "onClose"; }, never, never, false, never>;
}
export {};
//# sourceMappingURL=query-run-dialog.component.d.ts.map