import { action, root } from "@nuka9510/simple-custom-element/@types/component";
import State from "./state.js";
export default class Component extends HTMLElement {
#private;
/** `Component` `load` 여부 */
get isLoaded(): boolean;
/** 현재 `Component`를 호출 한 `Document` 또는 `Component` 객체 */
get root(): root;
/** `EventListener`에 할당 할 `data-sce-action`을 정의한 `action` */
get action(): action;
/** `Component`에서 사용할 모든 `action` */
get allAction(): action;
/** `ShadowRoot`에 적용 할 `style`을 정의한 `css`문자열 */
get css(): string;
/** `html`을 `render`하는 `Component` 또는 `ShadowRoot` 객체 */
get el(): Component | ShadowRoot;
/** `Component`의 `attributeChangedCallback`를 실행하기 위해 추척할 `attributes` */
static get observedAttributes(): string[];
/**
* `custom-element`를 위한 `Component`객체
*
* ```
*
*
*
*
*
*
*
* ```
*/
constructor();
/** `Component`가 할당 될 때 실행한다. */
init(): Promise;
/**
* `Component`객체의 `action`에 정의한 이벤트들의 `eventListener`를 갱신한다.
* `removeEventListener` -> `addEventListener`
* `eventListener`를 갱신 후 실행할 `callback` 정의.
*/
updateEvent(): void;
/** `Component`객체의 `action`에 정의한 이벤트를 `addEventListener`에 적용할 시 실행할 `callback`. */
addEvent(): void;
/** `Component`객체의 `action`에 정의한 이벤트를 `removeEventListener`에 적용할 시 실행할 `callback`. */
removeEvent(): void;
/** `rendering`이후 실행 할 `callback` */
afterRender(): void;
/** 화면에 `render`할 html 문자열을 반환한다. */
render(): string | void;
/** `Component`가 제거될 때 혹은 `state`가 변경되어 다시 `rendering`을 하기 이전에 실행할 `callback` */
destroy(): void;
/** `arg`를 `state`로 갖는 `State`객체를 반환한다. */
setState(state: T): State;
/** 현재 페이지의 `URLSearchParams`객체를 반환한다. */
getParams(): URLSearchParams;
/** `Component`가 `connected`될 때 실행할 `callback` */
connectedCallback(): void;
/** `Component`가 `disconnected`될 때 실행할 `callback` */
disconnectedCallback(): void;
/** `Component`가 새로운 `document`로 이동되었을 때 실행할 `callback` */
adoptedCallback(): void;
/** `Component`의 `observedAttributes`가 변경 될 때 실행할 `callback` */
attributeChangedCallback(target: string, oldValue: string, newValue: string): void;
/** `Component`의 `attributeChangedCallback`가 실행 될 때 실행 할 `callback` */
updateAttribute(target: string, oldValue: string, newValue: string): void;
}