import { Endpoint } from './Endpoint';
import { ContentDeliveryByIdOptions, ContentDeliveryChildrenOptions, ContentDeliveryRootOptions, ContentDeliveryFilterOptions } from './RequestOptions';
import { Content, ContentLanguageType, MediaTypeContentManager, ContentMemberGroupType, ContentManagementMember, MemberResetPasswordToken, ContentMemberTypeType, ContentRelationType, ContentRelationTypeType, ContentTypeBase, ContentManagementContent, ContentManagementMedia, Media, PagedResponse, Form, OAUthResponse } from './Responses';
import { Redirect } from './Responses/Redirect';
/**
 * @internal
 */
export declare const Endpoints: {
    delivery: {
        content: {
            root: <T extends Content>(options?: ContentDeliveryRootOptions | undefined) => Endpoint<T[]>;
            byId: <T_1 extends Content>(id: string, options?: ContentDeliveryByIdOptions | undefined) => Endpoint<T_1>;
            byUrl: <T_2 extends Content>(url: string, options?: ContentDeliveryByIdOptions | undefined) => Endpoint<T_2>;
            children: <T_3 extends Content>(id: string, options?: ContentDeliveryChildrenOptions | undefined) => Endpoint<PagedResponse<T_3>>;
            ancestors: <T_4 extends Content>(id: string, options?: ContentDeliveryRootOptions | undefined) => Endpoint<T_4[]>;
            descendants: <T_5 extends Content>(id: string, options?: ContentDeliveryChildrenOptions | undefined) => Endpoint<PagedResponse<T_5>>;
            byContentType: <T_6 extends Content>(contentType: string, options?: ContentDeliveryFilterOptions | undefined) => Endpoint<PagedResponse<T_6>>;
            filter: <T_7 extends Content>(options?: ContentDeliveryFilterOptions | undefined) => Endpoint<PagedResponse<T_7>>;
            search: <T_8 extends Content>(term: string, options?: ContentDeliveryFilterOptions | undefined) => Endpoint<PagedResponse<T_8>>;
        };
        media: {
            root: <T_9 extends Media>() => Endpoint<T_9[]>;
            byId: <T_10 extends Media>(id: string) => Endpoint<T_10>;
            children: <T_11 extends Media>(id: string, options?: import("./RequestOptions").PageOptions | undefined) => Endpoint<T_11>;
        };
        redirect: {
            getAll: <T_12 extends Redirect>(options?: ContentDeliveryFilterOptions | undefined) => Endpoint<PagedResponse<T_12>>;
        };
    };
    management: {
        content: {
            root: <R extends ContentManagementContent>() => Endpoint<R[]>;
            byId: <R_1 extends ContentManagementContent>(id: string) => Endpoint<R_1>;
            children: <R_2 extends ContentManagementContent>(id: string, options?: import("./RequestOptions").PageOptions | undefined) => Endpoint<PagedResponse<R_2>>;
            create: <R_3 extends ContentManagementContent>() => Endpoint<R_3>;
            publish: <R_4 extends ContentManagementContent>(id: string, options?: import("./RequestOptions").CultureOptions | undefined) => Endpoint<R_4>;
            unPublish: <R_5 extends ContentManagementContent>(id: string, options?: import("./RequestOptions").CultureOptions | undefined) => Endpoint<R_5>;
            update: <R_6 extends ContentManagementContent>(id: string) => Endpoint<R_6>;
            delete: <R_7 extends ContentManagementContent>(id: string) => Endpoint<R_7>;
        };
        contentType: {
            all: <R_8 extends ContentTypeBase>() => Endpoint<R_8[]>;
            byAlias: <R_9 extends ContentTypeBase>(alias: string) => Endpoint<R_9>;
        };
        media: {
            root: <R_10 extends ContentManagementMedia>() => Endpoint<R_10[]>;
            byId: <R_11 extends ContentManagementMedia>(id: string) => Endpoint<R_11>;
            children: <R_12 extends ContentManagementMedia>(id: string, options?: import("./RequestOptions").PageOptions | undefined) => Endpoint<PagedResponse<R_12>>;
            create: <R_13 extends ContentManagementMedia>() => Endpoint<R_13>;
            update: <R_14 extends ContentManagementMedia>(id: string) => Endpoint<R_14>;
            delete: <R_15 extends ContentManagementMedia>(id: string) => Endpoint<R_15>;
        };
        mediaType: {
            all: () => Endpoint<MediaTypeContentManager[]>;
            byAlias: (alias: string) => Endpoint<MediaTypeContentManager>;
        };
        language: {
            all: <R_16 extends ContentLanguageType>() => Endpoint<R_16[]>;
            byISOCode: <R_17 extends ContentLanguageType>(id: string) => Endpoint<R_17>;
            create: <R_18 extends ContentLanguageType>() => Endpoint<R_18>;
            update: <R_19 extends ContentLanguageType>(id: string) => Endpoint<R_19>;
            delete: <R_20 extends ContentLanguageType>(id: string) => Endpoint<R_20>;
        };
        relation: {
            byId: (id: string | number) => Endpoint<ContentRelationType>;
            byParent: (id: string) => Endpoint<ContentRelationType[]>;
            byChild: (id: string) => Endpoint<ContentRelationType[]>;
            byAlias: (alias: string) => Endpoint<ContentRelationType[]>;
            create: () => Endpoint<ContentRelationType>;
            delete: (id: string | number) => Endpoint<ContentRelationType>;
        };
        relationType: {
            byAlias: (alias: string) => Endpoint<ContentRelationTypeType>;
        };
        member: {
            byUsername: <R_21 extends ContentManagementMember>(username: string) => Endpoint<R_21>;
            create: <R_22 extends ContentManagementMember>() => Endpoint<R_22>;
            update: <R_23 extends ContentManagementMember>(username: string) => Endpoint<R_23>;
            addGroup: (username: string, group: string) => Endpoint<any>;
            removeGroup: (username: string, group: string) => Endpoint<any>;
            delete: (username: string) => Endpoint<any>;
            changePassword: (username: string) => Endpoint<any>;
            createResetPasswordToken: <R_24 extends MemberResetPasswordToken>(username: string) => Endpoint<R_24>;
            resetPassword: <R_25 extends ContentManagementMember>(username: string) => Endpoint<R_25>;
        };
        memberGroup: {
            byName: (name: string) => Endpoint<ContentMemberGroupType>;
            create: () => Endpoint<ContentMemberGroupType>;
            delete: (name: string) => Endpoint<ContentMemberGroupType>;
        };
        memberType: {
            all: <R_26 extends ContentMemberTypeType>() => Endpoint<R_26[]>;
            byAlias: <R_27 extends ContentMemberTypeType>(alias: string) => Endpoint<R_27>;
        };
        forms: {
            all: () => Endpoint<Form[]>;
            byId: (id: string) => Endpoint<Form>;
            submitEntry: (id: string) => Endpoint<any>;
        };
    };
    authentication: {
        member: () => Endpoint<OAUthResponse>;
        user: () => Endpoint<OAUthResponse>;
    };
};
