import * as i0 from '@angular/core';
import { AXValueChangedEvent } from '@acorex/cdk/common';
import * as i1 from '@acorex/components/text-box';
import * as i2 from '@acorex/components/decorators';
import * as i3 from '@acorex/components/select-box';
import * as i4 from '@acorex/components/tabs';
import * as i5 from '@acorex/components/button';
import * as i6 from '@acorex/components/text-area';
import * as i7 from '@acorex/components/selection-list';
import * as i8 from '@angular/forms';

type Queries = {
    tempId?: string;
    [key: string]: string;
};
type HeadersFix = {
    Authorization: string;
    ContentType: string;
};
type HeadersDynamic = {
    tempId?: string;
    [key: string]: string;
};
type Headers = HeadersFix & HeadersDynamic;
type AXRestApiOutput = {
    url: string;
    method: 'GET' | 'POST' | 'DELETE' | 'PUT' | 'PATCH';
    body: string;
    headers: Headers;
    queries: Queries[];
};

declare class AXRestApiGeneratorService {
    outPutJSON: i0.WritableSignal<AXRestApiOutput>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRestApiGeneratorService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AXRestApiGeneratorService>;
}

declare class AXQueryParamsComponent {
    #private;
    protected service: AXRestApiGeneratorService;
    protected queryParamsArray: i0.WritableSignal<Queries[]>;
    protected addQueryParamsHandler(): void;
    protected removeQueryParamsHandler(id: string): void;
    protected queryParamsValueHandler(e: AXValueChangedEvent<any>, id: string): void;
    protected queryParamsKeyHandler(e: AXValueChangedEvent<any>, id: string): void;
    protected setInitialState(item: Queries, type: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXQueryParamsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXQueryParamsComponent, "ax-query-params", never, {}, {}, never, never, true, never>;
}

declare class AXRequestBodyComponent {
    #private;
    protected service: AXRestApiGeneratorService;
    protected value: i0.WritableSignal<any>;
    protected selectedItem: i0.WritableSignal<{
        id: any;
        text: string;
        placeHolder: string;
    }>;
    protected items: {
        id: number;
        text: string;
        placeHolder: string;
    }[];
    protected bodyReqHandler(e: AXValueChangedEvent<any>): void;
    protected bodyTextHandler(e: AXValueChangedEvent<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRequestBodyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXRequestBodyComponent, "ax-request-body", never, {}, {}, never, never, true, never>;
}

declare class AXRequestHeadersComponent {
    #private;
    protected service: AXRestApiGeneratorService;
    protected headersArray: i0.WritableSignal<HeadersDynamic[]>;
    protected addHeadersHandler(): void;
    protected removeHeadersHandler(id: string): void;
    protected headersValueHandler(e: AXValueChangedEvent<any>, id: string): void;
    protected headersKeyHandler(e: AXValueChangedEvent<any>, id: string): void;
    protected setInitialState(item: HeadersDynamic, type: string): string;
    protected filterUnnecessaryKey(): {
        [key: string]: string;
        Authorization: string;
        ContentType: string;
        tempId?: string;
    }[];
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRequestHeadersComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXRequestHeadersComponent, "ax-request-headers", never, {}, {}, never, never, true, never>;
}

declare class AXRestApiAuthComponent {
    #private;
    protected service: AXRestApiGeneratorService;
    protected value: i0.WritableSignal<any>;
    protected selectedItem: i0.WritableSignal<{
        id: any;
        text: string;
        placeHolder: string;
    }>;
    protected items: {
        id: number;
        text: string;
        placeHolder: string;
    }[];
    protected authTypeHandler(e: AXValueChangedEvent<any>): void;
    protected authInputHandler(e: AXValueChangedEvent<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRestApiAuthComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXRestApiAuthComponent, "ax-rest-api-auth", never, {}, {}, never, never, true, never>;
}

declare class AXRestApiGeneratorComponent {
    #private;
    readonly value: i0.InputSignal<AXRestApiOutput>;
    onValueChange: i0.OutputEmitterRef<AXRestApiOutput>;
    protected service: AXRestApiGeneratorService;
    protected urlHandler(e: AXValueChangedEvent<any>): void;
    protected methodHandler(e: AXValueChangedEvent<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRestApiGeneratorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXRestApiGeneratorComponent, "ax-rest-api-generator", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "onValueChange": "onValueChange"; }, never, never, true, never>;
}

declare class AXRestApiGeneratorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXRestApiGeneratorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXRestApiGeneratorModule, never, [typeof i1.AXTextBoxModule, typeof i2.AXDecoratorModule, typeof i3.AXSelectBoxModule, typeof i4.AXTabsModule, typeof i5.AXButtonModule, typeof i6.AXTextAreaModule, typeof i7.AXSelectionListModule, typeof i8.FormsModule, typeof AXRestApiGeneratorComponent, typeof AXQueryParamsComponent, typeof AXRequestBodyComponent, typeof AXRestApiAuthComponent, typeof AXRequestHeadersComponent], [typeof AXRestApiGeneratorComponent, typeof AXQueryParamsComponent, typeof AXRequestBodyComponent, typeof AXRestApiAuthComponent, typeof AXRequestHeadersComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXRestApiGeneratorModule>;
}

export { AXQueryParamsComponent, AXRequestBodyComponent, AXRequestHeadersComponent, AXRestApiAuthComponent, AXRestApiGeneratorComponent, AXRestApiGeneratorModule, AXRestApiGeneratorService };
export type { AXRestApiOutput, Headers, HeadersDynamic, HeadersFix, Queries };
