import { SfProject } from '@salesforce/core';
import { AsyncCreatable } from '@salesforce/kit';
import { PackageXml, ProfileApiOptions } from '../interfaces';
export declare class PackageProfileApi extends AsyncCreatable<ProfileApiOptions> {
    project: SfProject;
    includeUserLicenses: boolean;
    constructor(options: ProfileApiOptions);
    init(): Promise<void>;
    /**
     * For any profile present in the project package directories, this function generates a subset of data that only
     * contains references to items in the manifest.
     *
     * return a list of profile file locations that need to be removed from the package because they are empty
     *
     * @param destPath location of new profiles
     * @param manifestTypes: array of objects { name: string, members: string[] } that represent package xml types
     * @param excludedDirectories Directories to not include profiles from
     */
    generateProfiles(destPath: string, manifestTypes: PackageXml['types'], excludedDirectories?: string[]): string[];
    /**
     * Filter out all profiles in the manifest and if any profiles exist in the project package directories, add them to the manifest.
     *
     * @param typesArr array of objects { name[], members[] } that represent package types JSON.
     * @param excludedDirectories Direcotires not to generate profiles for
     */
    filterAndGenerateProfilesForManifest(typesArr: PackageXml['types'], excludedDirectories?: string[]): PackageXml['types'];
    private findAllProfiles;
    private getProfilesWithNamesAndPaths;
}
