import { Route } from '@vercel/routing-utils';
import { PackageJson, Builder, BuilderFunctions } from './types';
interface ErrorResponse {
    code: string;
    message: string;
    action?: string;
    link?: string;
}
interface Options {
    tag?: 'canary' | 'latest' | string;
    functions?: BuilderFunctions;
    ignoreBuildScript?: boolean;
    projectSettings?: {
        framework?: string | null;
        devCommand?: string | null;
        installCommand?: string | null;
        buildCommand?: string | null;
        outputDirectory?: string | null;
        createdAt?: number;
    };
    cleanUrls?: boolean;
    trailingSlash?: boolean;
    featHandleMiss?: boolean;
}
export declare function sortFiles(fileA: string, fileB: string): number;
export declare function detectApiExtensions(builders: Builder[]): Set<string>;
export declare function detectApiDirectory(builders: Builder[]): string | null;
export declare function detectOutputDirectory(builders: Builder[]): string | null;
export declare function detectBuilders(files: string[], pkg?: PackageJson | undefined | null, options?: Options): Promise<{
    builders: Builder[] | null;
    errors: ErrorResponse[] | null;
    warnings: ErrorResponse[];
    defaultRoutes: Route[] | null;
    redirectRoutes: Route[] | null;
    rewriteRoutes: Route[] | null;
    errorRoutes: Route[] | null;
}>;
export {};
