import { Entity, Condition } from "./xrmcontext.service";
export declare class FetchEntity {
    name: string;
    entityPrototype: Entity;
    attributes: string[];
    condition: Condition;
    linkedentities: Link[];
    parent: FetchEntity;
    link(prototype: Entity, property: string, condition: Condition): FetchEntity;
    link(prototype: Entity, property: string, condition: Condition, attributes: string[]): FetchEntity;
    innerjoin(prototype: Entity, alias: string, from: string, property: string, condition: Condition): FetchEntity;
    innerjoin(prototype: Entity, alias: string, from: string, property: string, condition: Condition, attributes: string[]): FetchEntity;
    outerjoin(prototype: Entity, alias: string, from: string, property: string, condition: Condition): FetchEntity;
    outerjoin(prototype: Entity, alias: string, from: string, property: string, condition: Condition, attributes: string[]): FetchEntity;
    aliasWithAttributes(): string[];
    private resolveAlias;
}
export declare class Link {
    from: string;
    alias: string;
    type: string;
    to: string;
    entity: FetchEntity;
    toFetchXml(populateAttrib: boolean): string;
}
export declare class Fetchsort {
    attribute: string;
    descending: boolean;
    toFetchXml(): string;
}
export declare class Fetchxml {
    private root;
    private keyname;
    count: number;
    page: number;
    distinct: boolean;
    private sorts;
    constructor(prototype: Entity, condition: Condition);
    entity(): FetchEntity;
    sort(attribname: string): void;
    sort(attribname: string, descending: boolean): void;
    toCountFetchXml(): string;
    toFetchXml(): string;
    toFetchXml(pageCoocie: string, forPage: number): string;
}
