import { ComponentsStore } from './store';
import { ComponentWithVersion } from '../component';
/**
 * Local Components Store implementation
 *
 * This store reads components from a local directory following the same structure as the S3 store.
 * Expected directory structure:
 *
 * componentsDirectory/
 * ├── component1/
 * │   ├── v1.0.0/
 * │   │   ├── component1-v1.0.0-win32.zip
 * │   │   ├── component1-v1.0.0-darwin.dmg
 * │   │   └── component1-v1.0.0-darwin-arm64.dmg
 * │   └── v1.1.0/
 * │       ├── component1-v1.1.0-win32.zip
 * │       └── component1-v1.1.0-darwin.dmg
 * └── component2/
 *     └── v2.0.0/
 *         └── component2-v2.0.0-win32.zip
 *
 * Legacy support is maintained for flat file structures in the root directory.
 */
export declare class LocalComponentsStore implements ComponentsStore {
    private logger;
    private componentsDirectory;
    constructor(componentsDirectory: string);
    getInfo(): string;
    getAll(): Promise<ComponentWithVersion[]>;
    download(name: string, version: string): Promise<{
        name: string;
        data: any;
        filename: string;
        actualVersion: string;
    }>;
    /**
     * Validate that the components directory exists and is accessible
     */
    private validateDirectory;
    /**
     * Check if a file is a supported package format
     */
    private isSupportedPackageFile;
    /**
     * Create a Component object from a single package file (legacy support)
     */
    private createComponentFromFile;
    /**
     * Create a Component object from structured directory layout
     * Expected filename format: componentName-vVersion-platform.ext
     * Following S3 store structure: componentName/vVersion/componentName-vVersion-platform.ext
     */
    private createStructuredComponent;
    /**
     * Scan component directory for version subdirectories
     * Expected structure: componentName/vX.Y.Z/componentName-vX.Y.Z-platform.ext
     */
    private scanComponentVersions;
    /**
     * Scan version directory for component package files
     * Expected structure: vX.Y.Z/componentName-vX.Y.Z-platform.ext
     */
    private scanVersionDirectory;
    /**
     * Get the latest version from a list of components with the same name
     * Simple string comparison - for proper semver, you'd want to use a semver library
     */
    private getLatestVersion;
}
//# sourceMappingURL=local.store.d.ts.map