import { RouteQueryParams } from '../functions/convertStringArrayTo';
import { RouteParams } from '../functions/convertUrlTo';
import { ExtractStaticSegments, SegmentObject } from '../functions/convertUrlToSegment';
import { ParamsToFunction, ParamsToUrlFunction } from '../functions/createUrlFunction';
export declare class NgxRoute<T extends string, Q extends string> {
    /**
     * The url path
     */
    readonly path: string;
    /**
     * Function to generate the url, requiring the right params
     */
    readonly fn: ParamsToFunction<T, Q>;
    /**
     * Function to generate the url, requiring the right params
     */
    readonly url: ParamsToUrlFunction<T, Q>;
    /**
     * Stores all the params as
     */
    private _params;
    /**
     * Stores all the params as
     */
    private _queryParams;
    /**
     * Stores all the segments as
     */
    private _segments;
    constructor(path: string, fn: ParamsToFunction<T, Q>, url: ParamsToUrlFunction<T, Q>, params: RouteParams<T>, segments: SegmentObject<ExtractStaticSegments<T>>, queryParams: RouteQueryParams<Q>);
    /**
     * All params store as an object
     */
    get params(): RouteParams<T>;
    /**
     * All query params store as an object
     */
    get queryParams(): RouteQueryParams<Q>;
    /**
     * All segments store as an object
     */
    get segments(): SegmentObject<ExtractStaticSegments<T>>;
}
