import { PathSegment } from '../../types';
import { EntityKey } from '../resource';
import { ODataPathSegments, ODataSegment } from './segments';
export declare class SegmentHandler {
    private segment;
    constructor(segment: ODataSegment);
    get name(): PathSegment;
    outgoingType(value?: string): string | undefined;
    incomingType(value?: string): string | undefined;
    bindingType(value?: string): string | undefined;
    path(value?: string): string;
    key<T>(value?: EntityKey<T>): EntityKey<T>;
    hasKey(): boolean;
    clearKey(): void;
    parameters<T>(value?: T): T;
    hasParameters(): boolean;
    clearParameters(): void;
}
export declare class ODataPathSegmentsHandler<T> {
    protected segments: ODataPathSegments;
    constructor(segments: ODataPathSegments);
    entitySet(): SegmentHandler;
    singleton(): SegmentHandler;
    action(): SegmentHandler;
    function(): SegmentHandler;
    keys(values?: (EntityKey<T> | undefined)[]): (EntityKey<any> | undefined)[];
    property(): SegmentHandler;
    navigationProperty(): SegmentHandler;
}
