import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
import { executeProjectQuery } from './project-query-executor';
import Joi from 'joi';
import type { RAuthorInfo } from '../../../util/r-author';
import type { RLicenseElementInfo } from '../../../util/r-license';
import type { FileRole } from '../../../project/context/flowr-file';
export interface ProjectQuery extends BaseQueryFormat {
    readonly type: 'project';
    /** Whether to include Dataflow information in the result. */
    readonly withDf?: boolean;
}
export interface ProjectQueryResult extends BaseQueryResult {
    /** The name of the project, if available. */
    readonly name?: string;
    /** The authors of the project. */
    readonly authors?: RAuthorInfo[];
    /** The files considered part of the project. */
    readonly files: (string | '<inline>')[];
    /** The counts of files by their role in the project. */
    readonly roleCounts?: Record<FileRole, number>;
    /** The licenses of the project. */
    readonly licenses?: RLicenseElementInfo[];
    /** The encoding of the project files. */
    readonly encoding?: string;
    /** The version of the project, if available. */
    readonly version?: string;
}
export declare const ProjectQueryDefinition: {
    readonly executor: typeof executeProjectQuery;
    readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
    readonly schema: Joi.ObjectSchema<any>;
    readonly flattenInvolvedNodes: () => never[];
};
