import { NamedQuery, NamedQueryState } from '../types';
/**
 * Provides run-time access to Named Queries
 */
export interface NamedQueryApi {
    /**
     * Adds a new Named Query to Adaptable State
     * @param namedQueries
     */
    addNamedQuery(namedQueries: NamedQuery): void;
    /**
     * Adds multiple new Named Query to Adaptable State
     * @param namedQueries
     */
    addNamedQueries(namedQueries: NamedQuery[]): void;
    /**
     * Retrieves Query section from Adaptable State
     *
     */
    getNamedQueryState(): NamedQueryState;
    /**
     * Gets all Named Queries in Adaptable State
     */
    getNamedQueries(): NamedQuery[];
    /**
     * Retrieves Named Query with given name from State
     * @param namedQueryName Name of Named Query
     */
    getNamedQueryByName(namedQueryName: string): NamedQuery | undefined;
    /**
     * Checks if the given Named Query has a valid name
     * @param namedQueryName Named Query
     */
    isValidNamedQuery(namedQuery: NamedQuery): NamedQueryValidationResult;
    /**
     * Opens Settings Panel with Query section selected and visible
     */
    openNamedQuerySettingsPanel(): void;
    /**
     * Runs the given Named Query
     * @param namedQuery Query to Run
     */
    runNamedQuery(namedQuery: NamedQuery): void;
    /**
     * Runs Named Query which has given name
     * @param queryName Name of Named Query
     */
    runQueryByName(queryName: string): void;
}
export interface NamedQueryValidationResult {
    valid: boolean;
    message: string;
}
