import * as graphql from 'graphql';
import type { Config } from 'houdini';
import type * as recast from 'recast';
import type { SvelteTransformPage } from './transforms/types';
type Identifier = recast.types.namedTypes.Identifier;
export declare function is_route(config: Config, framework: Framework, filepath: string): boolean;
export declare function route_data_path(config: Config, filename: string): string;
export declare function routePagePath(config: Config, filename: string): string;
export declare function is_route_script(framework: Framework, filename: string): boolean;
export declare function is_page_script(framework: Framework, filename: string): boolean;
export declare function is_layout_script(framework: Framework, filename: string): boolean;
export declare function is_root_layout(config: Config, filename: string): boolean;
export declare function is_root_layout_server(config: Config, filename: string): boolean;
export declare function is_root_layout_script(config: Config, filename: string): boolean;
export declare function is_layout_component(framework: Framework, filename: string): boolean;
export declare function is_page_component(framework: Framework, filename: string): boolean;
export declare function is_layout(framework: Framework, filename: string): boolean;
export declare function is_component(config: Config, framework: Framework, filename: string): boolean;
export declare function page_query_path(config: Config, filename: string): string;
export declare function layout_query_path(config: Config, filename: string): string;
export declare function resolve_relative(config: Config, filename: string): string;
export declare function walk_routes(config: Config, framework: Framework, visitor: RouteVisitor, dirpath?: string): Promise<void>;
export type RouteVisitor = {
    inlinePageQueries?: RouteVisitorHandler<graphql.OperationDefinitionNode>;
    inlineLayoutQueries?: RouteVisitorHandler<graphql.OperationDefinitionNode>;
    routePageQuery?: RouteVisitorHandler<graphql.OperationDefinitionNode>;
    routeLayoutQuery?: RouteVisitorHandler<graphql.OperationDefinitionNode>;
    routeComponentQuery?: RouteVisitorHandler<graphql.OperationDefinitionNode>;
    layoutQueries?: RouteVisitorHandler<graphql.OperationDefinitionNode[]>;
    pageQueries?: RouteVisitorHandler<graphql.OperationDefinitionNode[]>;
    layoutExports?: RouteVisitorHandler<string[]>;
    pageExports?: RouteVisitorHandler<string[]>;
    route?: RouteVisitorHandler<{
        dirpath: string;
        svelteTypeFilePath: string;
        layoutQueries: graphql.OperationDefinitionNode[];
        pageQueries: graphql.OperationDefinitionNode[];
        componentQueries: {
            query: graphql.OperationDefinitionNode;
            componentPath: string;
        }[];
        layoutExports: string[];
        pageExports: string[];
    }>;
};
type RouteVisitorHandler<_Payload> = (value: _Payload, filepath: string) => Promise<void> | void;
export declare function route_page_path(config: Config, filename: string): string;
export declare function store_import({ page, artifact, local, }: {
    page: SvelteTransformPage;
    artifact: {
        name: string;
    };
    local?: string;
}): {
    id: Identifier;
    added: number;
};
export type Framework = 'kit' | 'svelte';
export {};
