import { HttpClient } from '@angular/common/http'; import * as rxjs from 'rxjs'; import { Observable, BehaviorSubject } from 'rxjs'; import * as i0 from '@angular/core'; declare class SimpleLoading { private _loading$; get loading$(): Observable; setLoading(loading: boolean): void; } declare class SimpleMessage { private _status$; get status$(): Observable; setStatus(statusCode: number): void; private _error$; get error$(): Observable; setError(message: string): void; private _success$; get success$(): Observable; setSuccess(message: string): void; reset(): void; } declare class SimpleBaseService extends SimpleLoading { message: SimpleMessage; constructor(); protected clean(apiRequest: Observable): Observable; } declare class BaseHttp extends SimpleBaseService { protected http: HttpClient; protected host: string; protected service: string; protected endpoint: string; constructor(); setHttp(http: HttpClient): void; setHost(host: string): void; setService(service: string): void; setEndpoint(endpoint: string): void; protected slash(value: string | undefined): string; protected getService(): string; protected getEndpoint(): string; protected init(params: SimpleModel): void; } declare class SimplePersist { protected persist: boolean; protected key: string; protected content: BehaviorSubject; protected expire: number; private timeout; private expireKey; private timeoutKey; constructor(key?: string); config(config: PersistModel): void; setValue(content: Entity): this; getValue(): Observable; saveLocal(content: Entity): this; loadLocal(): Observable; hasLocal(): boolean; inDelay(): boolean; cleanLocal(): this; } interface SimpleModel { http: HttpClient; host: string; service?: string; endpoint?: string; } interface PersistModel { persist?: boolean; key?: string; expire?: number; } declare class SimpleObservable { init(initial: Entity): this; protected _value$: BehaviorSubject; get value$(): Observable; change(value: Entity): void; value(): Entity; } declare class SimpleListObservable { protected _items$: BehaviorSubject; init(initial: Entity[]): this; get items$(): Observable; includes(value: Entity): boolean; change(value: Entity[]): void; value(): Entity[]; addItem(value: Entity): void; removeItem(value: Entity): void; } declare class SimpleHttp extends BaseHttp { constructor(config: SimpleModel); getList(): Observable; get(id?: string): Observable; post(data: unknown): Observable; put(id: string, data: unknown): Observable; patch(id: string, data: unknown): Observable; delete(id: string): Observable; } declare class SimpleHttpList extends BaseHttp { constructor(config: SimpleModel); getList(): Observable; } declare class SimpleHttpGet extends BaseHttp { constructor(config: SimpleModel); get(id?: string): Observable; } declare class SimpleHttpPost extends BaseHttp { constructor(config: SimpleModel); post(data: unknown): Observable; } declare class SimpleHttpPut extends BaseHttp { constructor(config: SimpleModel); put(id: string, data: unknown): Observable; } declare class SimpleHttpPatch extends BaseHttp { constructor(config: SimpleModel); patch(id: string, data: unknown): Observable; } declare class SimpleHttpDelete extends BaseHttp { constructor(config: SimpleModel); delete(id: string): Observable; } declare class SimpleHttpListPersist extends SimpleHttpList { constructor(config: SimpleModel); private _data; config(config: PersistModel): this; private loadRequest; load(): void; get data(): rxjs.Observable; refresh(): void; reset(): void; update(data: Entity[]): void; addItem(item: Entity): void; } declare class SimpleHttpGetPersist extends SimpleHttpGet { constructor(config: SimpleModel); private _data; config(config: PersistModel): this; private loadRequest; load(id?: string): void; get data(): rxjs.Observable; refresh(): void; reset(): void; update(data: Entity): void; } declare class SimpleHttpPostPersist extends SimpleHttpPost { constructor(config: SimpleModel); private _data; config(config: PersistModel): this; private loadRequest; send(data: unknown): void; resend(data: unknown): void; reset(): void; get data(): rxjs.Observable; update(data: Entity): void; } declare class ExampleService { private http; private service; entity: SimpleHttp; getAll: SimpleHttpList; get: SimpleHttpGet; post: SimpleHttpPost; put: SimpleHttpPut; patch: SimpleHttpPatch; delete: SimpleHttpDelete; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface Entity { id: number; title: string; } export { BaseHttp, ExampleService, SimpleBaseService, SimpleHttp, SimpleHttpDelete, SimpleHttpGet, SimpleHttpGetPersist, SimpleHttpList, SimpleHttpListPersist, SimpleHttpPatch, SimpleHttpPost, SimpleHttpPostPersist, SimpleHttpPut, SimpleListObservable, SimpleLoading, SimpleMessage, SimpleObservable, SimplePersist }; export type { PersistModel, SimpleModel };